概要:
Selenium WebDriver では、 ElementNotInteractableExceptionこれは、対話に適した状態ではない要素を対話しようとしたときによく発生します。このエラーは、次のようないくつかの理由で発生する可能性があります。
ElementNotInteractableException の理由:
ElementNotInteractableException の解決策:
1.明示的な待機の使用:
2.永続的なオーバーレイの処理:
特定の問題指定されたコード内:
Gmail ログイン用の指定されたコードパスワードを入力しようとすると、ElementNotInteractableException が発生します。これは、コードがキーを送信しようとするときにパスワード フィールドが完全にレンダリングされていないことが原因である可能性があります。
提供されたコードの解決策:
キーを送信する前にパスワードフィールドをクリックできるようにします。修正されたコードは次のとおりです。
System.setProperty("webdriver.gecko.driver", "C:\Users\Ruchi\workspace2\SeleniumTest\jar\geckodriver-v0.17.0-win64\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); driver.manage().window().maximize(); String url = "https://accounts.google.com/signin"; driver.get(url); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebElement email_phone = driver.findElement(By.xpath("//input[@id='identifierId']")); email_phone.sendKeys("[email protected]"); driver.findElement(By.id("identifierNext")).click(); WebElement password = driver.findElement(By.xpath("//input[@name='password']")); WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.elementToBeClickable(password)); // Explicit wait password.sendKeys("test1"); driver.findElement(By.id("passwordNext")).click();
このコードでは明示的な待機が導入され、パスワード フィールドが操作を試行する前に HTML DOM で適切にレンダリングされるようになり、ElementNotInteractableException の問題が効果的に解決されます。
以上がSelenium WebDriver が ElementNotInteractableException をスローするのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。