【Selenium】element click interceptedでクリックできない時(Python)
PythonのSeleniumでボタン要素を.click()しようとして、こんな↓エラーが出てしまいどうしてもクリックできないことがありました。
Traceback (most recent call last):
File "test.py", line 277, in <module>
tester = Tester()
・・・省略・・・
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 80, in click
self._execute(Command.CLICK_ELEMENT)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a class="btn small-btn" href="/test/selenium/">...</a> is not clickable at point (1148, 16). Other element would receive the click: <div class="btn-group">...</div>
(Session info: chrome=91.0.4472.77)
クリックする方法のメモだけ簡潔に残します。
ElementClickInterceptedException: Message: element click intercepted: でクリックできない時
以下、1行目の.find_element_by_css_selector()やa.small-btnの部分は環境に合わせて書き換えてください。
Pythonelement = driver.find_element_by_css_selector('a.small-btn')
driver.execute_script('arguments[0].click();', element)
要素を取得したら、JavaScriptによってクリックをする。これでクリックできるようになるはずです。