在Selenium集成测试期间无法发送TAB密钥

时间:2011-10-18 08:50:57

标签: ruby-on-rails ruby selenium sendkeys

作为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”的选项卡也无济于事。有谁知道这里有什么不对吗?如何在不模拟其他地方点击的情况下将焦点移开元素?

感谢您的帮助,
多米尼克

2 个答案:

答案 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?