有没有办法在firefox上停止使用watir-webdriver加载页面?或者,即使页面仍在加载,有没有办法在我的脚本中强制执行某些操作?在我的脚本中,网站将挂起,脚本最终会超时。
答案 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,希望它能回答你的问题。