首頁 >Java >java教程 >為什麼我的 Selenium WebDriver Gmail 登入測試在輸入密碼時會拋出'ElementNotInteractableException”?

為什麼我的 Selenium WebDriver Gmail 登入測試在輸入密碼時會拋出'ElementNotInteractableException”?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-28 04:36:10269瀏覽

Why Does My Selenium WebDriver Gmail Login Test Throw an

Selenium WebDriver 在線程“main”org.openqa.selenium.ElementNotInteractableException

問題:

在硒中WebDriver 測試場景旨在捕獲和測試Gmail登錄,在嘗試輸入密碼時,測試失敗並出現“ElementNotInteractableException”。

原因:

「ElementNotInteractableException」當 WebDriver 遇到無法與之交互的元素時拋出,儘管該元素存在於 HTML中DOM.

解決方案:

  • 暫時覆蓋:如果另一個元素暫時覆蓋目標元素,則引發ExpplicWait 暫時覆蓋:
  • 如果另一個元素暫時覆蓋目標元素,則引發ExpExplicWait 且暫時覆蓋"elementToBeClickable “可以解決
  • 永久疊加:
  • 如果疊加是永久的,則將 WebDriver 轉換為「JavascriptExecutor」並透過 JavaScript 執行點擊操作。

具體針對此問題:

在這種情況下,原因是缺少明確等待密碼欄位在 HTML DOM 中變得可呈現。新增帶有 ExpectedCondition「elementToBeClickable」的 ExplicitWait 可以解決此問題。

程式碼解決方案:

...
WebDriver driver = new FirefoxDriver();
...
// Wait up to 20 seconds for the password field to become clickable
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='password']")));
password.sendKeys("test1");
...

透過實施此解決方案,測試應該順利進行,捕獲密碼正確並完成 Gmail 登入測試。

以上是為什麼我的 Selenium WebDriver Gmail 登入測試在輸入密碼時會拋出'ElementNotInteractableException”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn