【问题标题】:chrome browser closes automatically after the program finishes in ruby using watir程序在 ruby​​ 中使用 watir 完成后,chrome 浏览器会自动关闭
【发布时间】:2017-02-20 21:28:19
【问题描述】:

我正在使用 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'

【问题讨论】:

    标签: ruby google-chrome selenium watir-webdriver


    【解决方案1】:

    首先,不推荐使用 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
    

    【讨论】:

      【解决方案2】:

      声明这些

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

      附带说明!当您运行多个场景测试时,这可能会出现问题,如果其他测试在同一个 chrome 会话中启动,chromedriver 将主动拒绝连接。确保您在需要时拥有browser.close。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-04
        • 1970-01-01
        相关资源
        最近更新 更多