16

我最近在使用 selenium 时遇到了一个问题,在该问题中,调用clear()自定义文本框会导致在稍后在测试中输入文本时出现问题。文本框会检查 ( JavaScript) browserEvents,尤其是keyDown事件。我试图弄清楚什么clear()会影响事情,但我似乎找不到任何细节。

Selenium Java 绑定的源代码显示clear()不使用键盘或鼠标模拟来清除文本框中的文本。那么它到底是做什么的呢?

4

2 回答 2

33

clear()方法执行“自动化原子”,这是一个 JavaScript 函数,旨在为浏览器提供自动化功能的最小基本单元。在 的情况下clear(),该函数将value元素的属性设置为空字符串 (''),然后onchange在元素上触发事件。您感兴趣的原子函数是bot.action.clear()

于 2013-03-02T07:48:55.950 回答
0

这就是clear()将要做什么。该函数将清除文本框值并启用文本框。在文本字段中输入文本之前,我们需要清除文本字段并启用它。如果我们不使用clear (),我们不能使用 selenium 在文本字段中输入任何值。

driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("data")
于 2013-03-02T06:46:21.480 回答