英語字幕DB作成への道_Selenium編⑨ (ElementClickInterceptedException)
要素が画面上に表示されているのに、クリックすると ElementClickInterceptedException で失敗するときの解決方法が見つかりました。
それはexecute_script()。
Before
element = driver.find_element_by_css_selector('a.small-btn')
element.click()
After
element = driver.find_element_by_css_selector('a.small-btn') driver.execute_script('arguments[0].click();', element)
今のところ百発百中で成功しています。
なんなら element.is_displayed() が Falseでも成功します。
素晴らしい。
裏側の動きがどういう風に違うのかはわかりませんが、
一旦この例外が出たときはexecute_script()を使っていくことにします。
解決策がみつかってよかった!