【发布时间】:2014-05-07 19:59:17
【问题描述】:
我需要用 Java 中的 Selenium WebDriver 编辑一些 readonly 字段。由于 Selenium 甚至不让我找到这个字段,我搜索了解决方案,发现最简单的方法可能是使用带有 JavaScript Executor 的 JavaScript sn-p 删除 readonly 属性。
虽然这个 sn-p 在 Firefox 控制台中运行,成功地从所有输入中删除了该属性,但它在 Selenium 中引发了一个异常。
JavaScript 执行器:
((JavascriptExecutor) driver).executeScript(
"var inputs = document.getElementsByTagName('input');"+
"for(var i = 0; i < inputs.length; i++)"+
"inputs[i].removeAttribute('readonly','readonly');"
);
然后返回错误:
线程“主”org.openqa.selenium.WebDriverException 中的异常:非法字符
命令持续时间或超时:51 毫秒
更新:
如果我只留下第一个 JS 命令,也会出现同样的错误:
((JavascriptExecutor) driver).executeScript(
"var inputs = document.getElementsByTagName('input');");
堆栈跟踪的其余部分与此无关。任何人都知道如何解决此问题,或以其他方式编辑 readonly 字段?
【问题讨论】:
标签: java javascript firefox selenium selenium-webdriver