aur*_*ano 4 javascript java firefox selenium selenium-webdriver
我需要readonly用Java中的Selenium WebDriver 编辑一些字段.由于Selenium不会让我找到这些字段,因此我搜索了解决方案,并发现最简单的方法是readonly使用带有JavaScript Executor的JavaScript代码段删除该属性.
虽然此代码段可以在Firefox控制台上运行,但是从所有输入中成功删除了该属性,它会在Selenium中引发异常.
JavaScript执行者:
((JavascriptExecutor) driver).executeScript(
"var inputs = document.getElementsByTagName('input');????"+
"for(var i = 0; i < inputs.length; i++)"+
"inputs[i].removeAttribute('readonly','readonly');????"
);
Run Code Online (Sandbox Code Playgroud)
并返回错误:
线程"main"中的异常org.openqa.selenium.WebDriverException:非法字符
命令持续时间或超时:51毫秒
更新:
如果我只留下第一个JS命令,则会出现相同的错误:
((JavascriptExecutor) driver).executeScript(
"var inputs = document.getElementsByTagName('input');????");
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪的其余部分与此无关.任何人都知道如何解决这个问题,或者其他方式来编辑readonly字段?
Sig*_*hil 11
我无法找到您的代码的问题.但在此期间使用下面给出的代码.
List<WebElement> inputs = driver.findElements(By.tagName("input"));
for (WebElement input : inputs) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].removeAttribute('readonly','readonly')",input);
}
Run Code Online (Sandbox Code Playgroud)
如果这有助于您,请告诉我.
| 归档时间: |
|
| 查看次数: |
12244 次 |
| 最近记录: |