首頁 >Java >java教程 >如何在 Gmail 登入自動化過程中解決 Selenium 的「ElementNotInteractableException」?

如何在 Gmail 登入自動化過程中解決 Selenium 的「ElementNotInteractableException」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-26 14:28:13811瀏覽

How to Resolve Selenium's

Selenium WebDriver Elements 異常:解決Gmail 登入自動化的「ElementNotInteractableException」

嘗試使用Selenium WebDriver 自動執行Gmail 登入時,使用者可能會遇到ElementNotInteractableException。 ElementNotInteractableException?

此異常表示元素雖然存在於 DOM 中,但並未處於可以使用的狀態互動。

原因及解決方案ElementNotInteractableException

此異常的原因可能有所不同。以下是一些常見原因和解決方案:

    暫時重疊:
  • 另一個元素可能會暫時與目標元素重疊。使用“ExpectedConditions.invisibilityOfElementLocated”或“ExpectedConditions.elementToBeClickable”等待來解決這個問題。
  • 永久覆蓋:
  • 永久覆蓋需要使用JavascriptExecutor 來執行單擊操作,如示例中所示代碼
  • Gmail 登錄自動化的解決具體解決方案

在使用Firefox 的Gmail自動化登入上下文中,可以透過新增來解決「ElementNotInteractableException」使用 WebDriverWait 的明確等待。以下更新的程式碼說明了這一點:

System.setProperty("webdriver.gecko.driver", "C:UsersRuchiworkspace2SeleniumTestjargeckodriver-v0.17.0-win64geckodriver.exe");driver.manage().window().maximize();<p>String url = "https://accounts.google.com/signin";<br>driver.get (url) ;<br>driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); <br>WebElement email_phone = driver.findElement(By.xpath("//input[@id='identifierId']"));<br>email_phone.sendKeys("[email protected]");<br>driver. findElement(By.id("identifierNext")).click();<br>WebElement 密碼= driver.findElement(By.xpath("//input[@name='password']"));<br>WebDriverWait wait = new WebDriverWait(driver, 20);<br>wait.until(ExpectedConditions.elementToBeClickable(password));<br>password.sendKeys("test1");<br>driver.findElement(By.id("passwordNext")).click(ext"))). ;<br></p>


透過合併明確等待, WebDriver 會等到「密碼」欄位呈現並可點擊後再與之交互,解決「ElementNotInteractableException」並實現成功的登入自動化。

以上是如何在 Gmail 登入自動化過程中解決 Selenium 的「ElementNotInteractableException」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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