2017-02-20 6 views
0

Ich benutze Chrom 56, Chrome-Treiber 2.27 (neueste Version) mit Selen-Web-Treiber 3.1.0. Mit Bezug auf das Problem (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/1811), wo Chrome alle Instanzen schließt, sobald das Programm beendet ist und es mir keine Möglichkeit gibt, zu debuggen. Ich möchte nur wissen, ob das behoben ist, warum es immer noch passiert? oder ich vermisse etwas? Ich verwende den folgenden Code. Jede Hilfe wird geschätzt. Chrome Browser schließt automatisch nach dem Programm in Ruby mit Watir

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

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

Antwort

2

Erstens watir-WebDriver Juwel ist veraltet. Der aktualisierte Code befindet sich im Wat-Juwel. Außerdem sollten Sie keine dieser anderen Edelsteine ​​direkt benötigen.

Der Chromedriver-Dienst wird gestoppt, wenn der Ruby-Prozess beendet wird. Wenn Sie nicht möchten, dass die von chromedriver gestarteten Browser ebenfalls geschlossen werden, müssen Sie detach parameter verwenden. Derzeit ist dies wie so getan:

require 'watir' 

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

erklären diese

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

Auf einer seitlichen Anmerkung! Dies kann zu einem Problem führen, wenn Sie mehrere Szenariotests durchführen. chromedriver verweigert die Verbindung aktiv, wenn ein anderer Test in derselben Chrome-Sitzung initiiert wird. Stellen Sie sicher, dass Sie immer browser.close haben.

Verwandte Themen