Ruby 如何使用Watir::Browser关闭所有已打开的chrome浏览器,或重新使用已打开的chrome浏览器?

Ruby 如何使用Watir::Browser关闭所有已打开的chrome浏览器,或重新使用已打开的chrome浏览器?,ruby,google-chrome,watir-webdriver,Ruby,Google Chrome,Watir Webdriver,问题在于,该应用程序是持久的,并且作为客户端和内部网站点之间的一层工作。当客户端发出请求时,服务器用ChromeDriver打开新的chrome窗口,进行身份验证、请求信息、解析信息并向客户端显示。客户端可以执行数十个或数百个请求来获取新数据。但若客户端在接下来的10分钟内无法工作,他的请求就会打开新的chrome窗口 我找不到使用Watir::Browser的任何方法来重用已打开的窗口或至少关闭已打开的窗口,除非 system("taskkill /t /f /im chrome.exe")

问题在于,该应用程序是持久的,并且作为客户端和内部网站点之间的一层工作。当客户端发出请求时,服务器用ChromeDriver打开新的chrome窗口,进行身份验证、请求信息、解析信息并向客户端显示。客户端可以执行数十个或数百个请求来获取新数据。但若客户端在接下来的10分钟内无法工作,他的请求就会打开新的chrome窗口

我找不到使用Watir::Browser的任何方法来重用已打开的窗口或至少关闭已打开的窗口,除非

system("taskkill /t /f /im chrome.exe")

看看这个关闭所有窗口

def close_all_windows
  loop do
    begin
      Watir::Chrome.attach(:title, //).close
    rescue Watir::Exception::NoMatchingWindowFoundException
      break
    rescue
      retry
    end
  end
end
如果我是你的话,我更喜欢把焦点切换到已经打开的窗口上。如下所示:

browser.window(:title => "bbc.co.uk").use do
  # your code
end
browser.windows.each do |window|
  window.close
end