WebDriverException 元素必须是用户可编辑的才能清除它

WebDriverException Element must be user-editable in order to clear it

提问人:Immanuel Fredrick 提问时间:2/25/2015 最后编辑:edwinkslImmanuel Fredrick 更新时间:11/12/2018 访问量:42274

问:

我正在尝试运行测试用例来执行重置密码,但遇到了这个问题。

WebDriverException 元素必须是用户可编辑的才能清除它。

基本上,我正在访问输入新密码的页面并执行此操作:

browser.$("#newPassword").text("password");

其中执行上述行会引发错误。

Selenium Web Selenium-Chrome chrome-web-驱动程序 Fluentlenium

评论

0赞 aberna 2/25/2015
你能分享你正在使用的代码和你正在测试的页面的URL吗?对于 stackoverflow.com/questions/15360362/ 或此处 stackoverflow.com/questions/25290098/...
0赞 Arran 2/26/2015
那么它是什么元素?一?input
0赞 Immanuel Fredrick 2/26/2015
是的,它是 password 类型的输入元素
2赞 Immanuel Fredrick 2/27/2015
嗨,问题解决了。问题是因为我有两个同名的 id,它采用了第一个 id,这不是一个可编辑的元素。感谢您的回复
0赞 narainsagar 3/16/2016
嗨,我在类型元素上遇到了同样的错误,即,button.setValue('div#newOrUsed>button', 'New')

答:

33赞 mosaad 7/14/2016 #1

我遇到了同样的问题,这是因为有另一个具有相同 id 的元素不是输入字段,因此无法清除。

评论

1赞 Jonathan 9/17/2018
对我来说有点一样,我有一个糟糕的 xpath 表达式。不过,这让我走上了正确的轨道,谢谢。
2赞 Mohd Yusuf 9/14/2016 #2

我们可以尝试以下方法:

WebElement.sendKeys(Keys.DELETE);
WebElement.sendKeys("Test");
0赞 Robert 10/24/2017 #3

我在使用 Primefaces autoComplete 元素时遇到了这个问题。Primefaces 6.0 使用您传递的 ID 呈现一个跨度,并在其中呈现一个附加到 ID 的输入“_input”。如果您只使用在源代码中添加的 ID,则告诉 Selenium 进入 span(失败并出现“元素必须是用户可编辑的”错误)。如果您在 selenium 中按 ID 选择,请将“_input”添加到 ID。

1赞 tschumann 11/12/2018 #4

这可能是对输入类型使用了错误的方法。

至少在 CodeCeption 中,应该用于输入元素,应该用于选择元素,将它们混合在一起会得到fillFieldselectOptioninvalid element state: Element must be user-editable in order to clear it.