首頁 > Java > 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

ElementNotInteractableException,一種W3C 異常,當元素無法進行交互時會出現由於其可及性或可見性受到阻礙。這可能有多種原因,我們將在以下解決方案中探討和解決。

解決ElementNotInteractableException

  1. 識別和刪除臨時檔案覆蓋:

    如果另一個Web🎜暫時覆寫目標元素,您可以將ExplicitWait (WebDriverWait) 與ExpectedCondition 的 invisibilityOfElementLocated 結合使用。這將暫停執行,直到阻礙元素變得不可見。然而,更精確的方法是使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板