gpt4 book ai didi

java - 如何解决ElementNotInteractableException : Element is not visible in Selenium webdriver?

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:02 25 4
gpt4 key购买 nike

这里有我的代码的图像和我的错误的图像。谁能帮我解决这个问题吗?

enter image description here

enter image description here

最佳答案

ElementNotInteractableException

ElementNotInteractableException 是 W3C 异常,抛出该异常表示尽管 HTML DOM 上存在一个元素。 ,目前还没有处于可以交互的状态。

原因与解决方案:

发生ElementNotInteractableException的原因可能有很多。

  1. 其他 WebElement 临时覆盖在我们感兴趣的 WebElement:

    在这种情况下,直接的解决方案是引入 ExplicitWait,即 WebDriverWaitExpectedCondition 组合为 invisibilityOfElementLocated,如下所示:

    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();

    更好的解决方案是更细粒度,我们可以使用 ExpectedCondition 作为 elementToBeClickable,而不是使用 ExpectedCondition 作为 invisibilityOfElementLocated,如下所示:

    WebDriverWait wait1 = new WebDriverWait(driver, 10);
    WebElement element1 = wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element_to_be_clicked")));
    element1.click();
  2. 其他 WebElement 永久覆盖在我们感兴趣的 WebElement:

    如果在这种情况下叠加层是永久性的,我们必须将 WebDriver 实例强制转换为 JavascriptExecutor 并执行点击操作,如下所示:

    WebElement ele = driver.findElement(By.xpath("element_xpath"));
    JavascriptExecutor executor = (JavascriptExecutor)driver;
    executor.executeScript("arguments[0].click();", ele);

关于java - 如何解决ElementNotInteractableException : Element is not visible in Selenium webdriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48404175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com