Xvfb: Verbindung wurde abgelehnt, wenn ein Testskript über den Browser unter Fedora ausgeführt wurde
1067
codekaizer
Ich habe ein Python-Skript, das nur durch Aufruf ausgelöst wird my.ip.address/test
. Es funktioniert gut, wenn ich den PHP-Code über die Befehlszeile abwickle.
Wenn ich jedoch über die angegebene URL auf die Testautomatisierung über einen Browser zugreife, wird der folgende Fehler angezeigt:
Traceback (most recent call last): File "scripts/crawler.py", line 10, in driver = webdriver.Firefox(capabilities={"marionette":True}) File "/usr/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 152, in __init__ keep_alive=True) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in __init__ self.start_session(desired_capabilities, browser_profile) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in execute self.error_handler.check_response(response) File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: connection refused
Fehler in geckodriver.log:
1495299180874 geckodriver::marionette INFO Starting browser /usr/lib/firefox/firefox with args ["-marionette"] Unable to init server: Could not connect: Connection refused Error: cannot open display: :99
Einfacher Python-Code:
#!/usr/bin/env python2 from pyvirtualdisplay import Display from selenium import webdriver import time import sys driver = webdriver.Firefox(capabilities={"marionette":True}) display = Display(visible=0, size=(800,600)) display.start() driver.get('https://www.google.com') print driver.title driver.close() display.stop()
PHP-Code-Snippet für /test
Endpunkt:
$cmd = 'xvfb-run -a python scripts/crawler.py' return shell_exec($cmd);
Bereits installiert Xvfb
und ausführen:
$ whoami codekaizer #with root privileges $ Xvfb :99 -screen 0 1024x768x24 -ac -fbdir /tmp/.X11-unix/X99 &
Ich habe überprüft, dass /tmp/.X11-unix/X99
Socket den Xvfb
Prozess abhört.
Ich bin jetzt ziemlich festgefahren und schätze die Hilfe von jemandem wirklich!
Einzelheiten:
- Firefox 53.0
- Geckodriver 0.16.1
- Fedora 22 x86_64
Vielen Dank! - ck
0 Antworten auf die Frage
Verwandte Probleme
-
2
Wie installiere ich iTunes unter Wine?
-
3
Wie kann ich Firefox an die Fenstergröße erinnern?
-
1
Warum erhalte ich einen langsamen Netzwerkdurchsatz, wenn ich einen fehlerhaften DNS-Server habe?
-
2
Warum aktualisiert sich mein Pfad nicht * jetzt *?
-
7
Wie können Sie nachverfolgen, welche Pakete unter Fedora (Linux) installiert wurden?
-
2
Erhöhen Sie die Bildschirmauflösung von Fedora 11
-
1
Fedora ifup und Network Manager
-
3
Linux DD-Befehl: Wie extrahiert man Dateien aus einem ISO-Image?
-
1
Warum verschwanden die laufenden Anwendungen in der Fedora-Taskleiste?
-
1
Fedora installieren: Ist es wichtig, was ich als Hostnamen mache?