2017-07-23 4 views
3

Ich benutze Selen mit geckodriver versuchen, eine HTML-Seite zu bekommen. Unten ist der Code, den ich verwendeWebDriverException: Nachricht: Verbindung verweigert

from pyvirtualdisplay import Display  
from selenium import webdriver 

#start the virtual display  
display = Display(visible=0, size=(800, 600)) 
display.start() 

# start the browser. Using firefox. 
browser = webdriver.Firefox() 

browser.get('https://www.google.com') 

print browser.title 

browser.quit() 

display.stop() 

Wenn ich es mit Python ausführen, erhalte ich die folgende Fehlermeldung.

Traceback (most recent call last): 
    File "test.py", line 9, in <module> 
    browser = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__ 
    keep_alive=True) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__ 
    self.start_session(desired_capabilities, browser_profile) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session 
    response = self.execute(Command.NEW_SESSION, parameters) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute 
    self.error_handler.check_response(response) 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.WebDriverException: Message: connection refused 

Ich konsultiert geckodriver.log.

1500842848329 geckodriver INFO geckodriver 0.18.0 
1500842848362 geckodriver INFO Listening on 127.0.0.1:45467 
1500842849526 geckodriver::marionette INFO Starting browser /usr/bin/firefox with args ["-marionette"] 

Ich bin unsicher, wo ich als nächstes suchen soll. Irgendwelche Hinweise?

Update1: Es scheint, dass, als ich ein Power-Reset auf dem VPS, das Skript zu arbeiten begann. Ich untersuchte es weiter und erinnerte mich daran, dass es vier nicht mehr existierende Prozesse gab, die von früheren Firefox-Hinrichtungen ausgingen, die ich töten musste. Ich weiß nicht genug über die Interna der Prozessverarbeitung in Linux, um dies vollständig zu verstehen. Wird Geckodriver verwirrt?

+0

Gilt das auch auftreten, ohne eine virtuelle Anzeige? – n1c9

+0

Danke für den Hinweis. Ich habe gerade versucht, den Code der virtuellen Anzeige zu kommentieren, aber derselbe Fehler taucht auf. – tehnyit

Antwort

0

Ich hatte dieses Problem auch ... sogar auf einer Maschine mit X-Server läuft und eine voll funktionsfähige KDE-Umgebung. Es stellt sich heraus, gibt es strenge Versionsanforderungen bei der Verwendung von Geckodriver und Firefox. Ich habe eine ältere Version von Firefox mit der neuesten Version von Geckodriver ausgeführt. Sobald ich eine Version aufgelistet in den Release Notes (und spezifiziert den Pfad zu dieser firefox binär in meiner WebDriver Erklärung) heruntergeladen, es funktionierte gut:

driver = webdriver.Firefox(firefox_binary='/path/to/latest/firefox/binary') 

https://github.com/mozilla/geckodriver/releases

Verwandte Themen