当前位置: 首页 > 面试题库 >

在Selenium WebDriver中删除只读属性

崔宜修
2023-03-14
问题内容

我需要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);
}

让我知道这是否对您有帮助。



 类似资料:
  • 如何从Windows文件夹下的所有文件中删除只读属性? 更新:更多的问题是关于如何删除只读属性使用gupfile

  • 我使用windows attrib命令删除目录只读属性,然后像这样设置它: 问题是为什么从命令行中删除只读属性后,我仍然在目录属性对话框中看到它(右键单击windows资源管理器并选择属性)。

  • 问题内容: 鉴于Python的动态性,如果无法实现,我会感到震惊: 我想更改的实现。 我试图简单地写成这样: 但这告诉我。 这是防止我做可能(可能)愚蠢的事情的好尝试,但是我真的很想继续做下去。我怀疑解释器有某种可以修改的查找表,但我在Google上找不到类似的表。也不起作用- 它返回了与只读属性完全相同的错误。 我很想寻找一个Python 2.7解决方案,如果那很重要的话,尽管没有理由拒绝抛出适

  • 问题内容: 我不知道何时属性应该是私有的,是否应该使用属性。 我最近读到,setter和getters不是pythonic,我应该使用属性装饰器。没关系。 但是,如果我有属性,那一定不能从类外部设置,而是可以读取的(只读属性)。这个属性应该是私有的吗?我所说的私有是指下划线吗?如果是,那么不使用getter怎么读?我现在知道的唯一方法是写 这样我就可以读取属性,但是我无法设置它,所以很好。 但是我

  • 我正在运行带有多进程索引的蜘蛛,我想解决这个问题。 我总是收到太多的请求,是否有一个配置可以更改,以允许处理并发请求的阈值更大? 这是全部错误 更新:发现洪水磁盘水印超过,但似乎没有超过! df命令的输出

  • 问题内容: 我正在使用简单的xml库:http : //simple.sourceforge.net/home.php 我的@ElementList批注有问题:如果我使用这样的批注: 我的XML文件还有一个属性: 如何删除属性? 问题答案: 该属性告诉Simple 您使用哪种实现。如果缺少,Simple会自己寻找合适的类。 一种解决方案是使用而不是: 现在,简单将不会添加class-Attribu