java - 无法对 selenium 中禁用的元素使用发送键

标签 java selenium selenium-webdriver sendkeys

我尝试在 selenium 中编写代码的输入字段:

input class="tt-hint" type="text" disabled="" spellcheck="off" autocomplete="off" style="position: absolute; top: 0px; left: 0px; border-color: transparent; box-shadow: none; background: none repeat scroll 0% 0% rgb(255, 255, 255);"

我的代码是:

WebElementy inp= driver.findElement(By.className("tt-hint"));

inp.sendKeys(new String[] { "mo" });

但是上面的代码不起作用。我不断收到的错误是:

Exception in thread "main" org.openqa.selenium.InvalidElementStateException: Element is disabled and so may not be used for actions

感谢任何帮助。

我已将代码修改为

JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].removeAttribute('disabled')",inp);

inp.sendKeys("mo"); I get the output as Output

最佳答案

异常说明了一切。该元素尚未准备好接受任何交互并已禁用。 JavaScript 是这里唯一的选项。我将删除 disabled 属性,然后使用 sendKeys()

String script = "document.getElementsByClassName('tt-hint')[1].removeAttribute('disabled')";
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(script);

WebElementy inp= driver.findElement(By.className("tt-hint"));
inp.sendKeys("Whatever");

关于java - 无法对 selenium 中禁用的元素使用发送键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31411644/

相关文章:

java - 使用 Java 从托管服务器到本地 PC 进行 HTTP 调用

java - 如何在 Selenium 2 中选择/获取下拉选项

java - 无法将键发送到 div 元素 Selenium - Java

c# - 使用 Selenium WebDriver C# 最大化 Firefox 的浏览器窗口

javascript - 从 executescript 函数访问变量

java - Ninjaframework MVC Controller 继承和路由

java - 共享变量的测试方法

java - 如何设置不是在 Java JPA/Hibernate 中自动生成的@Id 主键?

java - 如何在通过java中的jsp显示的Web驱动程序中断言java异常?

java - 如何在 Selenium Java 中获取重播期间遍历的每个页面的请求 header ?