selenium - org.openqa.selenium.ElementNotInteractableException - 键盘无法访问元素
问题描述
工具 :
硒 3
问题 :
我正在运行一个现有的 Selenium 测试用例,而且我是 Selenium 的新手。当测试运行时,我可以看到使用页面源在 mozilla 上呈现如下组件:
<input type="text" autocomplete="off" id="home.name" name="home.locator.name" size="20" maxlength="64" value="">
仍然通过命令行运行测试后,硒抛出以下错误 -
org.openqa.selenium.ElementNotInteractableException - Element is not reachable by keyboard.
我也尝试过按照下面的方法添加延迟,但它似乎不起作用。
WebDriverWait wait = new WebDriverWait(getDriver(), 120);
wait.until(ExpectedConditions.visibilityOf(getDriver().findElement(By.id("home.name"))));
有人可以指导为什么观察到这种行为吗?
请注意,我正在通过 gradle 和命令行运行测试
解决方案
Selenium WebDriver 使用浏览器的本机方法与 Web 元素进行交互。但是,有时 Web 元素不会响应这些本地方法。在这种情况下,最好的选择是 Java Script。
请使用以下 JavaScript 与 Web 元素交互 -
WebElement element = driver.findElement(By.id("home.name");
((JavascriptExecutor)driver).executeScript("arguments[0].click();",element);
请注意,这里我在元素上使用了“单击”方法。但是,您可以用您选择的方法替换它。
推荐阅读
- python - 使用 Python 将数据 Excel 导出到谷歌表格
- kubernetes - 是否可以为 Kubernetes Jobs 提供一个工作池以避免创建 Pod 时间?
- laravel - laravel如何在存储firebase中上传图像
- reactjs - 如何在我的子组件中配置路由?反应路由器dom
- python - Python - 似乎无法找到如何通过其路径获取文件
- scala - 设置 UDF 返回的 DecimalType 的精度
- lua - GtkSourceView等Gtk类型如何注册到lgi lua
- scala - Spark GraphX:如何从边列表中加载折线图?
- blazor - 在同一方法调用中使其可见时如何聚焦元素?
- firebase - Flutter - 如何在 Firebase Firestore 上以正确格式存储长值?