在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

回到顶部