chrome 程序在 ruby 使用 watir 完成后浏览器自动关闭

chrome browser closes automatically after the program finishes in ruby using watir

我正在使用 chrome 56,chrome 驱动程序 2.27(最新版本)和 selenium 网络驱动程序 3.1.0。参考问题(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/1811),其中 chrome 会在程序完成后关闭所有实例,并且不会给我调试的机会。我只想知道这是否已修复,为什么它仍然发生?或者我错过了什么? 我正在使用以下代码。任何帮助表示赞赏。

require "uri"
require "net/http"
require 'watir-webdriver'
require 'selenium-webdriver'

@b = Watir::Browser.new :chrome
@b.goto 'http://www.google.com'

首先,watir-webdriver gem 已弃用。更新后的代码在 watir gem 中。此外,您不需要直接要求任何其他 gem。

chromedriver 服务在 ruby 进程退出时停止。如果您不希望由 chromedriver 启动的浏览器也关闭,则需要使用 detach parameter。目前这是这样做的:

require 'watir'

caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps[:chrome_options] = {detach: true}
@b = Watir::Browser.new :chrome, desired_capabilities: caps

声明这些

caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" =>  {'detach' => true})
browser = Watir::Browser.new :chrome, desired_capabilities: caps 

旁注!当您进行 运行 多场景测试时,这可能会出现问题,chrome 驱动程序将主动拒绝连接,以防其他测试在同一 chrome 会话中启动。确保在需要时有 browser.close