ホームページ > ウェブフロントエンド > jsチュートリアル > Facebook 入力フィールドにテキストを送信すると「org.openqa.selenium.ElementNotInteractableException」が発生するのはなぜですか?

Facebook 入力フィールドにテキストを送信すると「org.openqa.selenium.ElementNotInteractableException」が発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-27 18:37:12
オリジナル
220 人が閲覧しました

Why Am I Getting

Selenium WebDriver: Facebook の FirstName フィールドにテキストを送信中に「org.openqa.selenium.ElementNotInteractableException: 要素にキーボードからアクセスできません」

このエラーは、対話できない入力フィールドにキーを送信しようとすると発生しますキーボードで。この特定のケースでは、Facebook の「FirstName」フィールドにテキストを送信するときにエラーが発生します。

Reason

「キーボードでは要素にアクセスできません」 " エラーは、次のようなさまざまな理由で発生する可能性があります。

  • 要素が別の要素によって隠されているか、隠されています。要素。
  • 要素は無効になっているか、フォーカスを受け取りません。
  • ブラウザは、セキュリティ上の理由から要素へのキーボード入力をブロックしている可能性があります。

これに対処するにはいくつかのアプローチがあります問題:

WebDriverWait と ExpectedConditions を使用する:

要素が一時的に非表示または隠されている場合は、ExpectedConditions とともに WebDriverWait を使用して、要素が表示されクリック可能になるまで待機します。

使用するexecuteScript():

要素が永続的に非表示または隠蔽されている場合は、JavaScriptExecutor インターフェイスのexecuteScript() メソッドを使用して要素にアクセスし、操作します。

スタイルの編集属性:

「display:」などの CSS 属性により要素が非表示になっている場合なし、" スタイルを変更して要素を表示するには、executeScript() を使用します。

WebDriver の対話性チェックを無効にする (一時的):

Firefox の機能 moz:webdriverClick WebDriver の対話性チェックを一時的に無効にするには、 false に設定します。これはレガシー テストで必要になる場合があります。

特定のケース: Facebook 登録

提供されたコード スニペットでは、「FirstName」フィールドにページが読み込まれるたびに変化する動的 ID。この問題を解決するには、ID ではなく属性に基づいて要素を検索する動的ロケーター戦略を使用します。

更新されたコード スニペット:

WebDriver driver = new FirefoxDriver();
driver.get("https://www.facebook.com");
driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");
ログイン後にコピー

以上がFacebook 入力フィールドにテキストを送信すると「org.openqa.selenium.ElementNotInteractableException」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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