ホームページ  >  記事  >  バックエンド開発  >  リンクをクリックしたときの Splinter/Selenium の「ElementClickInterceptedException」を克服する方法

リンクをクリックしたときの Splinter/Selenium の「ElementClickInterceptedException」を克服する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 05:01:02785ブラウズ

How to Overcome

要素をクリックできない: Splinter / Selenium の ElementClickInterceptedException

Splinter または Selenium を使用して Web ページをスクレイピングするときに、特定の要素をクリックしようとすると問題が発生するリンクやボタンが発生する可能性があります。この問題は、Web ページが読み込まれるときに発生し、クリック可能な要素を隠す「loadingWhiteBox」が表示されます。

「loadingWhiteBox」は数秒後に消えますが、HTML コードにはそのまま残ります。ボックスは表示されたままですが、要素をクリックしようとするのが妨げられ、次のエラー メッセージが表示されます。別の要素

があるため、ポイント (318.3000030517578,661.7999877929688) をクリックできません。わかりにくくなります

この問題を解決し、目的の要素をクリックするには、以下のメソッドのいずれかを実装することを検討してください。

このメソッドは、execute_script 関数を利用して、要素をクリックする JavaScript コードを実行します。
<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)</code>

あるいは、このメソッドは、ActionChains クラスを使用して、マウス カーソルを要素の位置に移動し、クリックを実行して、邪魔な要素を効果的にバイパスします。
<code class="python">element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()</code>

以上がリンクをクリックしたときの Splinter/Selenium の「ElementClickInterceptedException」を克服する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。