首页 > 解决方案 > 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

解决方案


Selenium WebDriver 使用浏览器的本机方法与 Web 元素进行交互。但是,有时 Web 元素不会响应这些本地方法。在这种情况下,最好的选择是 Java Script。

请使用以下 JavaScript 与 Web 元素交互 -

WebElement element = driver.findElement(By.id("home.name");

((JavascriptExecutor)driver).executeScript("arguments[0].click();",element);

请注意,这里我在元素上使用了“单击”方法。但是,您可以用您选择的方法替换它。


推荐阅读