首页 >web前端 >js教程 >为什么我的 WebDriver 抛出 ElementNotInteractableException?

为什么我的 WebDriver 抛出 ElementNotInteractableException?

Susan Sarandon
Susan Sarandon原创
2024-12-07 11:17:13125浏览

Why is My WebDriver Throwing an ElementNotInteractableException?

ElementNotInteractableException:键盘无法访问元素

理解错误

当 WebDriver 无法交互时会发生此错误使用键盘与元素。这可能是由于元素被隐藏、遮挡或无法聚焦。

错误原因

  • 元素已隐藏: 被另一个元素暂时遮挡或永久隐藏。
  • 永久存在覆盖: 覆盖元素会阻止对所需元素的访问。
  • 阻止交互的属性: class="ng-hide" 或 style="display: none" 等属性禁用
  • 尝试单击像

    这样的元素或

    : 将点击发送到 ;

    解决方案

    • 临时叠加:使用WebDriverWait和ExpectedConditions等待元素变为可见/可点击。
    • 永久叠加:使用JavascriptExecutor中的executeScript()将style="display: none"重置为style="display: block"。
    • 阻止交互的属性:使用JavascriptExecutor中的executeScript()来修改属性并启用

    对于此特定问题(Facebook 注册)

    由于 Facebook 登录页面中的 React Native 元素,需要动态定位器策略:

    driver.findElement(By.xpath("//input[@name='firstname' and contains(@class,'inputtext')]")).sendKeys("testing it ");

    更新为moz:webdriverClick

    Firefox 功能 moz:webdriverClick 允许禁用符合 WebDriver 的交互性检查:

    DesiredCapabilities dc = new DesiredCapabilities();
    dc.setCapability("moz:webdriverClick", false);
    WebDriver driver = new FirefoxDriver(dc);

以上是为什么我的 WebDriver 抛出 ElementNotInteractableException?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn