java - 删除 Selenium WebDriver 中的只读属性

标签 java javascript firefox selenium selenium-webdriver

我需要使用 Java 中的 Selenium WebDriver 编辑一些 readonly 字段。由于 Selenium 甚至不允许我找到这个字段,我搜索了解决方案,发现最简单的方法可能是使用带有 JavaScript Executor 的 JavaScript 片段删除 readonly 属性。 .

虽然此代码段在 Firefox 控制台中运行,成功地从所有输入中删除了该属性,但它在 Selenium 中抛出了一个异常。

JavaScript 执行器:

((JavascriptExecutor) driver).executeScript(
    "var inputs = document.getElementsByTagName('input');​​​​"+
    "for(var i = 0; i < inputs.length; i++)"+
        "inputs[i].removeAttribute('readonly','readonly');​​​​"
);

错误返回:

Exception in thread "main" org.openqa.selenium.WebDriverException: illegal character

Command duration or timeout: 51 milliseconds

更新:

如果我只留下第一个 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);
}

如果这对您有帮助,请告诉我。

关于java - 删除 Selenium WebDriver 中的只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22711441/

相关文章:

Firefox 3.5 在 SVG 上支持的 Javascript 事件处理程序

java - 集合$UnmodifyingRandomAccessList<E> Cassandra 冰雪奇缘 map

javascript - 如何通过将光标移到 DIV 上来在 DIV 中修改和成像

java - 为什么我的正弦方法不起作用

javascript - SolanaWeb 3.js 包 TypeError : s. TransactionInstruction 不是构造函数

javascript - 为什么 array[0] 使用 jQuery 返回的对象与 array.first 不同,为什么我不能使用 .val( )?

html - 如何修复 Firefox 中的 span/div 问题(在 IE 中按需要显示)并调整 Chrome 中的错位?

jquery - Firefox 边框 CSS 问题

java - 数组 : Location of certain Values Inputed

Java 商业友好的 R 树实现?