停止加载页面watir-webdriver

时间:2011-10-20 04:52:08

标签: ruby watir watir-webdriver

有没有办法在firefox上停止使用watir-webdriver加载页面?或者,即使页面仍在加载,有没有办法在我的脚本中强制执行某些操作?在我的脚本中,网站将挂起,脚本最终会超时。

3 个答案:

答案 0 :(得分:3)

你可以使用Timeout类来强制它在等待一段合理的时间后放弃(这在内部也是Watir执行它的等待时间)

begin
  Timeout::timeout(10) do
    # perform actions that may hang here
  end
rescue Timeout::Error => msg
  put "Recovered from Timeout"
end

答案 1 :(得分:2)

如果网站挂起,如果没有出现元素,您应该可以使用wait方法来超时脚本。这些主要用作AJAX的答案,但它们也适用于这种情况。例如,如果在您单击链接后脚本挂起,并且您希望下一页具有特定标题或文本:

@browser.link(:name => "Let's Hang!").click
Watir::Wait.until(30) { @browser.title == "new page" }

Watir::Wait.until(30) { @browser.text.include? ("confirmation text") }

@browser.image(:src => "awesome.jpg").wait_until_present(30)

在退出错误之前,每个都将等待30秒以满足条件。您可以在应用的挂起窗口中更改退出时间(30)。

答案 2 :(得分:1)

请查看Selenium问题http://code.google.com/p/selenium/issues/detail?id=687它还没有修复,watir-webdriver也是基于Selenium,希望它能回答你的问题。