我有一个文本字段,一旦用户点击输入,就会将值附加到 dom。我在用 WebDriver 模拟这个时遇到了一些麻烦,因为 driver.send_keys(:return) 只会提交表单。
在查看了文本字段的实现方式之后,我注意到它正在寻找一个“keyup”事件,并使用它来回车。
使用浏览器控制台,我可以通过以下方式使用 jQuery 在 keyup 事件上触发提交来成功模拟这一点:
var e = jQuery.Event('keyup')
e.which = 13;
$('input').trigger(e)
不幸的是,我不能用 driver.execute_script 完成同样的事情。任何想法为什么这不起作用?
driver.find_element(:id => 'input').send_keys('foo')
driver.execute_script("var e = jQuery.Event('keyup')")
driver.execute_script("e.which = 13;")
driver.execute_script("$('input').trigger(e)")
有什么想法可以使用 Selenium WebDriver 完成此任务吗?