作为Selenium集成测试的一部分,我在Ruby中编写了以下两行,以模拟在文本字段中输入电子邮件地址并“将焦点移开”:
@driver.find_element(:id, "user_email").send_keys "user@example.com"
@driver.find_element(:id, "some_other_element").click
第二行不够通用,因为some_other_element可能是未知的或不存在的。因此,我想用TAB键击替换单击另一个元素的操作:
@driver.find_element(:id, "user_email").send_keys :tab
但是,这似乎不起作用,元素user_email不会像预期的那样失去焦点。同时替换:带有“\ xEE \ x80 \ x84”的选项卡也无济于事。有谁知道这里有什么不对吗?如何在不模拟其他地方点击的情况下将焦点移开元素?
感谢您的帮助,
多米尼克
答案 0 :(得分:1)
我不知道怎么做而不模拟点击,但点击<body>
对我有用。这个解决方案可能足够通用。
答案 1 :(得分:0)
我认为这应该运作良好。试试看。
find('.myselector_name').native.send_keys(:tab)
答案参考是How do I simulate hitting enter in an input field with Capybara and ChromeDriver?