WebElement.clear()对TextBoxes做了什么?

时间:2013-03-01 21:48:27

标签: selenium selenium-webdriver webdriver

我最近遇到了使用selenium的问题,在自定义文本框中调用clear()会导致在测试后期输入文本时出现问题。文本框会检查(JavaScriptbrowserEvents,尤其是keyDown个事件。我试着搞清楚clear()做了什么,看看是否会影响事情,但我似乎无法找到任何具体细节。

Selenium Java绑定shows that clear() does not use keyboard or mouse simulation的源代码,用于清除文本框中的文本。那究竟是什么呢?

2 个答案:

答案 0 :(得分:30)

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

答案 1 :(得分:1)

以下是clear()的确切内容。该功能将清除文本框值并启用文本框。在文本字段中输入文本之前,我们需要清除文本字段并启用它。如果我们不使用clear (),我们就无法使用selenium在文本字段中输入任何值。

driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("data")