有没有办法在firefox上停止使用watir-webdriver加载页面?或者,有没有一种方法可以在页面仍在加载的情况下强制执行脚本中的某些内容?在我的脚本中,网站会挂起,脚本最终会超时。
发布于 2012-03-03 03:30:08
您可以使用Timeout类强制它在等待一段合理的时间后放弃(这也是Watir内部执行其等待的方式)
begin
Timeout::timeout(10) do
# perform actions that may hang here
end
rescue Timeout::Error => msg
put "Recovered from Timeout"
end发布于 2011-10-21 00:38:27
如果网站挂起,如果没有元素出现,您应该能够使用等待方法来使脚本超时。它们主要用于对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-12-17 05:02:15
请看一下Selenium的问题http://code.google.com/p/selenium/issues/detail?id=687它还没有修复,watir-webdriver也是基于Selenium的,希望它能回答你的问题。
https://stackoverflow.com/questions/7831290
复制相似问题