我正在使用chrome 56,Chrome驱动程序2.27(最新版本)和selenium web驱动程序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'

答案 0 :(得分:2)
首先,不推荐使用watir-webdriver gem。更新后的代码位于watir gem中。此外,您不需要直接要求任何其他宝石。
当ruby进程退出时,chromedriver服务停止。如果您不希望chromedriver启动的浏览器也关闭,则需要使用detach parameter。目前这样做是这样的:
require 'watir'
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps[:chrome_options] = {detach: true}
@b = Watir::Browser.new :chrome, desired_capabilities: caps
答案 1 :(得分:0)
声明这些
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {'detach' => true})
browser = Watir::Browser.new :chrome, desired_capabilities: caps
旁注!当您运行多个场景测试时,这可能会出现问题,如果其他测试在同一个chrome会话中启动,则chromedriver会主动拒绝连接。确保您在需要时browser.close
。