2016-06-13 10 views
0

Ich habe ein einfaches Skript in Linux erstellt, aber jetzt versuche ich, es auf Windows zu arbeiten.Watir Browser-Prozess startet nicht richtig (Windows)

Der Code ist:

require 'watir-webdriver' 
puts "Press enter when ready to continue" 
gets 
browser = Watir::Browser.start "http://www.google.com" 
# do stuff 

Es funktioniert genau wie auf Ubuntu erwartet. Aber wenn ich es unter Windows ausprobiere, startet der Firefox-Prozess, aber dann stirbt er, bevor du überhaupt ein Firefox-Fenster siehst. Dies ist eine Neuinstallation von Ruby auf dieser Windows-Installation, ich habe es noch nie zuvor auf diesem Rechner verwendet.

Was könnte das Problem sein?

Bearbeiten: Befehlszeile Ablaufverfolgung, wie angefordert.

C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:90:in `connect_until_stable': unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError) 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:55:in `block in launch' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/socket_lock.rb:43:in `locked' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/launcher.rb:51:in `launch' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/firefox/bridge.rb:43:in `initialize' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `new' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver/common/driver.rb:53:in `for' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.53.1/lib/selenium/webdriver.rb:84:in `for' 
    from C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/watir-webdriver-0.9.1/lib/watir-webdriver/browser.rb:46:in `initialize' 
    from bot.rb:8:in `new' 
    from bot.rb:8:in `<main>' 
+0

Gibt es eine Ausnahme? –

+0

Hinzufügen zu Justins Frage, was ist der Fehler Trace in der Befehlszeile? Klingt wahrscheinlich eine Inkompatibilität zwischen selen-webdriver (in WATIR) und der auf Ihrem Computer installierten FF-Version. – Sam

+0

Danke an euch beide. Hmm, das könnte möglich sein. Es sollte erwähnt werden, ich habe Waterfox auch installiert (aber nicht Chrom, ich konnte nicht das Installationsprogramm zum arbeiten) und mehrere FF-Profile (obwohl ich versucht habe, eine bestimmte ohne Glück zu wählen). Ich habe den Beitrag mit der Befehlszeile Trace bearbeitet. – Joe

Antwort

2

Das ist this bug in Firefox. Ihre Optionen sind:

  1. Warten Sie auf den Patch in Firefox 47
  2. Herunterstufung zu Firefox 46
  3. Verwenden Marionette anstelle des Firefox-Treiber (die ist veraltet und wird nicht mit neuen Versionen von Firefox arbeiten bald
  4. )
  5. Verwenden Chrome

mariniert Um zu versuchen, laden Sie die geckodriver und zu tun:

browser = Watir::Browser.new :firefox, marionette: true 
+0

Aha, brilliant zu wissen, ich bin froh, dass ich nicht nur dumm war! Vielen Dank für Ihre Hilfe. Ich habe mit Option 5. etwas auf Rails mit einem kopflosen Browser zu tun, um es zu tun. Etwas für das Portfolio, denke ich! Danke nochmal. – Joe