ページをスクレイプしようとしていますが、リンク/ボタンをクリックするときに問題が発生することがあります。 Webページがロードされると、「loadingWhiteBox」が最初に表示され、数秒後に消えます(ただし、HTMLコードに残ります)ボックスがWebサイトに表示されている限り、リンクをクリックして、次のエラーメッセージを取得します。
Selenium.common.exceptions.ElementClickInterceptedException: Message:
Element <span class="taLnk ulBlueLinks"> is not clickable at point
(318.3000030517578,661.7999877929688) because another element <div
class="loadingWhiteBox"> obscures it
これを回避する方法はありますか?私はすでに次のコマンドを使用してみました:
driver.is_element_present_by_css('div[class*="loadingWhiteBox"]')
しかし、要素はアクティブではない場合でも存在します。
以下の2つの方法を試して、要素をクリックしてください。
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
これが機能することを願っています。
同じクラスまたは同じxpath/cssを持つ別の要素が画面に表示されるため、エラーが表示されます。
Thread.sleep()、wait()などの要素が表示されるまで、いくつかの待機メソッドを与えてみてください。
要素がなくなるまで待つことができますが、
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.invisibilityOfElementLocated(By.className("loadingWhiteBox")));