2017-02-20 33 views
0

私は、chrome 56、chrome driver 2.27(最新リリース)をselenium web driver 3.1.0で使用しています。問題を参照すると(https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/1811)、プログラムが終了するとクロムがすべてのインスタンスを閉じ、デバッグする機会を与えません。私はちょうどこれが固定されている場合、それがまだ起こっている理由を知りたいですか?または私は何かが不足していますか? 次のコードを使用しています。どんな助けもありがとうございます。 ruby​​を使用してrubyでプログラムが終了した後、クロムブラウザが自動的に終了します

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

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

答えて

2

まず、ワチール-webdriverを宝石は推奨されています。更新されたコードはwatir gemにあります。また、これらの他の宝石類は直接購入する必要はありません。

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 
0

はサイドノートではこれらの

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

を宣言します!複数のシナリオテストを実行しているときに問題が発生する可能性があります。同じクロムセッションで他のテストが開始された場合、chromedriverは積極的に接続を拒否します。必要に応じていつでもbrowser.closeがあることを確認してください。

関連する問題