当前位置: 首页 > 知识库问答 >
问题:

如何解决ElementNotInteractableException:元素在Selenium WebDriver中不可见?

劳昊明
2023-03-14

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

共有1个答案

赵俊晤
2023-03-14

ElementNotInteractableException是W3C异常,它被抛出表示尽管HTML DOM上存在一个元素,但它不处于可以与之交互的状态。

发生ElementNotInteractableException的原因可能很多。

>

  • 其他webelement临时覆盖在我们感兴趣的webelement上:

    在这种情况下,直接的解决方案应该是将explicitwaitwebdriverwaitexpectedcondition合并为invisibilityofelementlocited作为folllow:

    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用作InvisibilityOfElementLociated,我们可以将ExpectedCondition用作ElementTobeclickable,如下所示:

    WebDriverWait wait1 = new WebDriverWait(driver, 10);
    WebElement element1 = wait1.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath_of_element_to_be_clicked")));
    element1.click();
    

    在我们感兴趣的webelement上永久覆盖其他webelement

    如果覆盖层是永久性的,在本例中,我们必须将WebDriver实例强制转换为JavaScriptExecutor并执行单击操作,如下所示:

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

  •  类似资料:
    • 我正在使用Selenium(Java版本)测试一个基于OpenLayers的API。 我想测试一个使用的功能。控制修改功能。我想单击绘制的特征(SVG),然后拖动并检查它们是否存在、可见或隐藏。 我已经画了一个多边形,并且选择了它。见下图: 这些SVG元素的HTML如下所示: 假设我想选择红点。 我试过: 但是它总是返回一个空列表。 我做错了什么?有人能帮我吗? 多谢了。 编辑1-功能:垂直显示可

    • error1:第39行,在login in element=driver.find_element_by_xpath('//[@id=“joingame”]/button/span[2]')中。单击()error2:selenium.common.exceptions.nosuchelementexception:消息:没有这样的元素:找不到元素:{“method”:“xpath”,“select

    • 问题内容: 我的网站上有一个选择控件。我正在使用页面对象与页面进行交互。如果我这样做(在我的课程下的前两行和我的方法中) 它以空指针失败。我也尝试了没有。 现在,如果我在我的方法中执行此操作,则一切正常,然后选择正确的项目 这是该控件的实际网页摘要(已编辑以保护无辜者) 让我说我可以解决我的问题, 但是 我不明白为什么“ 正常 ”路径无法正常工作。 问题答案: 那是因为该类具有以下构造函数: 见J

    • 我想点击element with href删除FB组中的挂起的帖子,但是selenium在第二个之后崩溃。使用相同的循环,我可以添加帖子到组没有任何问题;“Delete Button”列表是有效的,因为当我尝试时,我会得到真实的位置。 线程“main”org.openqa.selenium.elementNotinteractableException:构建信息:版本:'3.4.0',修订:'un

    • 请任何人都可以帮助我如何从下拉列表中选择选项,如果元素是不可见的,它是一个布尔属性。以下是html标签: 我正在开发selenium webdriver。下面的代码工作不正常。是否有用于选择不可见元素的示例代码。 当使用以下行时,我也得到了错误:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:32毫秒 或者 请参阅 html,那里的元素是不可见的。任何人都可以建议我如何使元素可见,然后我

    • 我正在尝试单击 函数? 或者,我试图以为目标: 这只是给出了一个错误,即它不在当前视图中,很可能是因为< code>a在< code>div下面 错误: Web驱动程序中发生了类型为“OpenQA.硒.元素不可见异常”的未处理的异常.dll附加信息:元素当前不可见,因此可能无法与之交互 谢谢你的帮助。我认为我的第二个选择是最好的选择。有没有办法抵消一个< code>Click()?谢了。