Selenium Webdriver - Ruby不支持的命令

时间:2013-03-22 23:21:58

标签: ruby selenium ide webdriver

使用Selenium IDE,我导出了一个基本测试,它登录到一个帐户,鼠标悬停在下拉列表中,并找到了注销按钮。然后测试结束。

我看到的问题是,当在ruby / test :: unit / web驱动程序中导出测试时,我的上一个命令waitForPopUp不受支持并返回

# ERROR: Caught exception [ERROR: Unsupported command [waitForPopUp | _self | 30000]]

我需要使用ruby转换来导航到鼠标悬停,否则测试会超时并返回错误。此外,如果我再次遇到此问题,如果您可以将我链接到ruby webdriver命令列表。

1 个答案:

答案 0 :(得分:4)

将使用Selenium IDE创建的测试用例导出为Ruby等语言时,有些命令未完全转换。 waitForPopUp恰好是这些命令之一。相反,您需要在代码中找到无法转换的行,并编写支持的命令来执行相同的操作。

你可能想要使用这样的东西(未经测试的代码!):

# This code defines the method
def wait_for_and_switch_to_new_popup(timeout = 30) # seconds
  Selenium::WebDriver::Wait.new(:timeout => timeout,:message => "Failed to find popup within #{timeout} seconds!").until do
    @driver.window_handle != @driver.window_handles.last
  end
  @driver.switch_to.window(@driver.window_handles.last)
end 

...

# This calls the method to wait for and switch to the new popup.
# Use this inside your code to tell the browser to switch to the new popup
wait_for_and_switch_to_new_popup

要了解有关Selenium WebDriver的Ruby绑定(DSL)的更多信息,您可以在官方Wiki页面上了解它们:http://code.google.com/p/selenium/wiki/RubyBindings