我最近遇到了使用selenium的问题,在自定义文本框中调用clear()
会导致在测试后期输入文本时出现问题。文本框会检查(JavaScript
)browserEvents
,尤其是keyDown
个事件。我试着搞清楚clear()
做了什么,看看是否会影响事情,但我似乎无法找到任何具体细节。
Selenium Java绑定shows that clear()
does not use keyboard or mouse simulation的源代码,用于清除文本框中的文本。那究竟是什么呢?
答案 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")