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

为什么我的 WebDriver 抛出 ElementNotInteractableException?

Susan Sarandon
发布: 2024-12-07 11:17:13
原创
154 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板