スポンサーリンク

selenium + chromdriver = Error:”Other element would receive the click:”

Seleniumをいじっていると、色々とエラーがでる。

Other element would receive the click:

このエラーが出た時の対処法を考えている。

今まで多かった原因は、どう表現していいかわからないが、Webページのレイヤーのようなものが存在し、邪魔してクリックできなかったので、レイヤー移動することでクリックさせた。

※以下のコードは、一般的には、マウススクロールをさせた意味になるらしい。筆者はchromeのデベロッパーツールで、レイヤーを分けているため。

※以下のサイトがよくselenium操作がまとまっている

https://qiita.com/mochio/items/dc9935ee607895420186

element = driver.find_element_by_id("id_name")
actions = ActionChains(driver) 
actions.move_to_element(element)
actions.perform()

このコードである程度動いたが、、、また同じエラーがでた。

どうやら、「検索ボタンが邪魔してクリックできない」ことは、わかっている。

よって、一旦、以下のコードを追加して、マウスを一番下にまで下げてみる。

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

しかし、、、同じErrorが相変わらず発生。うぐぅ

Other element would receive the click:

マウススクロールを最下部までしたときにヒントに気が付いた。

まだ、違うレイヤーが存在する。。。。

とりあえず、新しいレイヤーに、id_nameを参照してジャンプさせたら動いた。

しかし、、、次でまたコケタ。

結局、どうにもならないので、かなり先にジャンプさせたら、検索のボタンもかなり下に動いて動いた。

そうーいうことかよ!って感じだった。