有没有办法停止在 Firefox 上使用 watir-webdriver 加载页面?或者即使页面仍在加载,是否有办法强制我的脚本中的某些内容?在我的脚本中,网站会挂起,脚本最终会超时。
问问题
3004 次
3 回答
3
您可以使用 Timeout 类在等待一段合理的时间后强制它放弃(这也是 Watir 在内部执行它的等待方式)
begin
Timeout::timeout(10) do
# perform actions that may hang here
end
rescue Timeout::Error => msg
put "Recovered from Timeout"
end
于 2012-03-02T19:30:07.937 回答
2
如果网站挂起,如果元素没有出现,您应该能够使用等待方法使脚本超时。这些主要用作 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)。
于 2011-10-20T16:38:27.247 回答
1
请查看 Selenium 问题http://code.google.com/p/selenium/issues/detail?id=687它尚未修复,watir-webdriver 也是基于 Selenium,希望它能回答您的问题。
于 2011-12-16T21:02:15.230 回答