停止加载页面watir-webdriver

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

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

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

如果网站挂起,如果没有出现元素,您应该能够使用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)。

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