こんにちは、ミナピピン(@python_mllover)です。
「element click intercepted」でボタン要素がクリックできない
PythonのSeleniumでボタン要素を.click()でクリックしようとして、↓のようなエラーが出てしまいどうしてもクリックできないことがありました。
<エラーメッセージ>
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element<a >…</div>(Session info: chrome=96.0.4472.77)
解決策
ElementClickInterceptedException: Message: element click intercepted: でクリックできない時
以下、1行目の.find_element_by_css_selector()やa.small-btnの部分は環境に合わせて書き換えてください。
element = driver.find_element_by_xpath('/html/body/div[1]/div[2]/main/div/div/~~~/button') driver.execute_script('arguments[0].click();', element)
seleniumではdriver.execute_script()
でjsを実行できるので、要素を取得したら、JavaScriptによってクリックをするようにしています。これでクリックできるようになるはずです。ちなみにこのエラーはSeleniumを使う際に何回か遭遇しているんですが、headlessモードでレンダリングしているときとかに起こる印象です。
関連記事:【Python】SeleniumでTor経由でIPを切り替えつつスクレイピングする
関連記事:【Python】Seleniumで使用するWebDriverの更新を自動化してコードの挙動を安定させる
参考:https://yuki.world/selenium-elementclickintercepted-exception/
コメント