ホームページ > Java > &#&チュートリアル > Selenium で ElementNotInteractableException が発生するのはなぜですか?それを修正するにはどうすればよいですか?

Selenium で ElementNotInteractableException が発生するのはなぜですか?それを修正するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-29 19:45:15
オリジナル
1020 人が閲覧しました

Why Am I Getting an ElementNotInteractableException in Selenium, and How Can I Fix It?

ElementNotInteractableException により要素と対話できない: 解決策の包括的なガイド

Selenium Webdriver の使用中に ElementNotInteractableException エラーが発生した場合、これは、要素が HTML DOM 上に存在するが、相互作用ができない状態です。この問題を解決するためのステップバイステップのガイドは次のとおりです。

ElementNotInteractableException について

W3C 例外である ElementNotInteractableException は、要素が操作にアクセスできない場合に発生します。アクセシビリティまたは可視性が妨げられるため。これにはさまざまな理由が考えられますが、次の解決策で調査して対処します。

ElementNotInteractableException

  1. 一時的なユーザーの特定と削除オーバーレイ:

    別の WebElement がターゲット要素を一時的にオーバーレイする場合は、ExpectedCondition の invisibilityOfElementLocated と組み合わせて ExplicitWait (WebDriverWait) を使用できます。これにより、障害要素が表示されなくなるまで実行が一時停止されます。ただし、より正確なアプローチは、elementToBeClickable を使用し、ターゲット要素と対話する前に、ターゲット要素がクリック可能な状態であることを確認することです。

    両方のソリューションのコード例を次に示します。

    WebDriverWait wait2 = new WebDriverWait(driver, 10);
    wait2.until(ExpectedConditions.invisibilityOfElementLocated(By.xpath("xpath_of_element_to_be_invisible")));
    driver.findElement(By.xpath("xpath_element_to_be_clicked")).click();
    ログイン後にコピー
    WebDriverWait wait1 = new WebDriverWait(driver, 10);
    WebElement element1 = wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element_to_be_clicked")));
    element1.click();
    ログイン後にコピー
  2. 永続的なアドレス指定オーバーレイ:

    ターゲット要素をブロックするオーバーレイが永続的な場合は、JavaScriptExecutor インターフェイスを利用できます。これにより、目的の要素をクリックするなど、ブラウザ内で JavaScript コードを実行できるようになります。

    WebElement ele = driver.findElement(By.xpath("element_xpath"));
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", ele);
    ログイン後にコピー

以上がSelenium で ElementNotInteractableException が発生するのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート