在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');"
);
并返回错误:
线程“主” org.openqa.selenium.WebDriverException中的异常:非法字符
命令持续时间或超时:51毫秒
如果仅留下第一个JS命令,则会出现相同的错误:
((JavascriptExecutor) driver).executeScript( "var inputs = document.getElementsByTagName('input');");
其余的堆栈跟踪与此无关。任何人都知道如何解决此问题,或以其他方式编辑readonly
字段吗?
回答:
我找不到与您的代码有关的问题。但与此同时,请使用下面给出的代码。
List<WebElement> inputs = driver.findElements(By.tagName("input"));for (WebElement input : inputs) {
((JavascriptExecutor) driver).executeScript(
"arguments[0].removeAttribute('readonly','readonly')",input);
}
让我知道这是否对您有帮助。
以上是 在Selenium WebDriver中删除只读属性 的全部内容, 来源链接: utcz.com/qa/409368.html