WebDriverException: Meldung: ungültiges argument: kann nicht töten beendet Prozess mit GeckoDriver, Selen und Python auf RaspberryPi3
Server: Raspberry Pi-3
OS: Dietpi - version 159
Geckodriver version: 0.22 arm
Firefox version: 52.9.0
Python-version: 3.5
Selen version: 3.14.1
Gecko ist ausführbar und liegt in /usr/local/bin/
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.firefox.options import Options
import time
options = Options()
options.set_headless(headless=True)
driver = webdriver.Firefox(firefox_options=options)
print('Need your login credential')
username = input('What is your username?:\n')
password = input('What is your password?:\n')
...
...
Ausgabe:
root@RPi3:~# python3.5 ITE-bot.py
Traceback (most recent call last):
File "ITE-bot.py", line 12, in <module>
driver = webdriver.Firefox(firefox_options=options)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__
keep_alive=True)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: invalid argument: can't kill an exited process
Irgendeine Idee was falsch ist? Ich habe versucht, google ohne Glück.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Fehlermeldung...
...bedeutet, dass die GeckoDriver war nicht in der Lage zu initiieren,/spawn eine neue Internet unterwegs-Sitzung d.h. Firefox-Browser Sitzung.
Ihr Hauptthema ist die Inkompatibilität zwischen der version der Binärdateien, die Sie verwenden, wie folgt:
Release Notes der GeckoDriver v0.21.0 (2018-06-15) deutlich erwähnt die folgenden:
Ihre Firefox version ist 52.9.0.
Gibt es also eine klare Diskrepanz zwischen GeckoDriver v0.22.0 und die Firefox-Browser v57
Lösung
Unable to find a matching set of capabilities (Selenium::WebDriver::Error::SessionNotCreatedError)
Wenn Sie mit Firefox auf einem system mit nicht-Anzeige", stellen Sie sicher, dass Sie das headless-Modus.
Stellen Sie außerdem sicher, dass Sie kompatible Versionen von Firefox, Selen, und Geckodriver:
https://firefox-source-docs.mozilla.org/testing/geckodriver/geckodriver/Support.html
firefox
selbst muss auf dem system installiert werden. Zumindest für mich, der oben gezeigte code funktionierte erst nach Installation von firefox.Ja geprüft Start Xvfb vor dem bauen können, das problem zu beheben, aber wenn Sie einen job haben, wie eine pipeline oder Zweigstellen der pipeline ist diese option nicht sichtbar. In den Knoten Ihrer Selenium grid, dass Sie gehen, um den test auszuführen, benötigen Sie:
1 - Installation Von Xvfb:
apt install xvfb
2 - Ausführen Xvfb:
/usr/bin/Xvfb :99 -ac -screen 0 1024x768x8 & export DISPLAY=":99"
3 - führen Sie Erneut den Knoten, zum Beispiel:
java -jar selenium.jar -role node -hub http://#.#.#.#:4444/grid/register -capabilities browserName=firefox,plataform=linux -host #.#.#.# -port 1991
War ich auf headless-Modus, mit richtigen Versionen von alles, und der einzige Weg, um aus dieser Fehlermeldung war nicht ausführen der Selen-test als root
War ich in der Lage, dies zu beheben, durch das laufen meine tests mit Xvfb. Ich war mit Ihnen auf einem remote-server.
War ich mit Jenkins so ich habe die box, die wie folgt aussah:
Kredit https://www.obeythetestinggoat.com/book/chapter_CI.html
Verwendet habe ich:
Mein problem war, dass ich versuchte zu laufen Nightwatch (der startet automatisch GeckoDriver) von der VS-Code-terminal.