作为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并没有像预期的那样失去焦点。此外,将:tab替换为"xEEx80x84"也无济于事。有人知道这里有什么问题吗?如何在不模拟点击其他地方的情况下将焦点移开元素?
谢谢你的帮助,
杜米尼克
我不知道如何做到没有模拟点击,但点击<body>
为我工作。这个解决方案可能足够通用。
我认为这应该工作得很好。试试吧。
find('.myselector_name').native.send_keys(:tab)
参考答案是我如何模拟用Capybara和ChromeDriver在输入字段中键入回车?