如何确定watir对象的浏览器是否已关闭? (在输入ctrl + C或其他方式后)

时间:2016-02-09 02:45:23

标签: watir

当我关闭浏览器时,watir一直在使用(或点击ctrl + C并以此方式关闭它),我得到这些类型的错误...

b = Watir::Browser.new
#ctrl+C and closes browser window
b.url
Errno::ECONNREFUSED: Connection refused - connect(2)

...当我在watir对象上运行类似#url或#goto的东西时。

我尝试过像#closed这样的方法吗?和#closed对象,但它们不被识别。也尝试了这个:

b.methods - Object.methods

并仔细研究了可用的方法,但到目前为止还没有任何工作。

如果没有使用begin / rescue块响应引发的错误消息,我可以使用哪些方法来确定浏览器窗口是否已关闭?

奖金将是一种方法,可以让我重新初始化浏览器窗口,保持在此过程中的任何偏好。那将是最好的解决方案。

3 个答案:

答案 0 :(得分:0)

使用存在?浏览器是否关闭的方法,browser.exists?如果浏览器打开则会为true,否则返回false。

答案 1 :(得分:0)

这里要回答我自己的问题,因为我不确定是否可以直截了当地回答。猴子修补时间。

class Watir::Browser
  def try(meth)
    begin
      self.send(meth.to_sym)
      true
    rescue
      false
    end
   end

   def open?
     if try(:exists?)
       exists?
     else
       false
     end
   end

end

无法以何种方式关闭浏览器窗口。

我可以提交拉取请求

答案 2 :(得分:0)

关闭浏览器的正确方法是browser.quitbrowser.close 然后,您可以致电browser.exists?,它将返回false。发送ctrl+C完全退出您的会话,因此您不再收听正在拨打电话的网址/端口,并且您将始终收到该错误。