Error
$Python3-Dateiname.py
selenium.common.exceptions.WebDriverException:
Message: chrome not reachable
Es wurden mehrere Prozesse und Treiber für den Chrome-Browser gestartet. (Da es kopflos ist, kann es nicht visuell bestätigt werden ...)
object.quit ()
am Ende der Datei.python
#Alle laufenden Prozesse anzeigen, einschließlich "Chrom"
$ ps aux | grep chrome
#Wenn Sie viele Beschreibungen wie die folgende sehen, werden mehrere Web-Treiber ausgeführt.
Benutzername pts/0 Sl 04:09 0:00
chromedriver --port=49671
#Wenn Sie viele Anweisungen wie die folgende sehen, werden mehrere Browserprozesse ausgeführt.
Benutzername pts/0 S 04:32 0:00
/opt/google/chrome/chrome --type=broker
ps aux
Befehl --ps: Zeigt den ausgeführten Befehl an --aux ist eine Option --a: Alle Benutzerprozesse --u: Benutzername und Startzeit anzeigen --x: Zeigt Prozesse ohne Steuerterminals an
python
killall chrome
killall webdriver
Überprüfen Sie die laufende Datei erneut.
python
$ ps aux | grep chrome
#Nur das Folgende war übrig und die anderen waren fertig.
Benutzername pts/0 S+ 04:35 0:00
grep --color=auto chrome
python
#Angenommen, die folgende Beschreibung
browser = webdriver.Chrome(options=options)
browser.quit()
Wenn die Variable zum Starten von Webdriver in einer anderen Beschreibung wie z. B. Treiber beschrieben ist, stimmen Sie damit überein. Beispiel: driver.quit ()
In einem anderen Artikel gab es so etwas wie das Stoppen der Sandbox und das Hinzufügen von --no-sandbox als Option, aber in meinem Fall wurde die Sandbox nicht gestartet und war unnötig.
Wenn im laufenden Prozess eine Sandbox angezeigt wird, kann es auch sinnvoll sein, Folgendes zu versuchen.
killall chrome-sandbox
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-setuid-sandbox")
Der Originalartikel ist hier
Sandbox scheint übrigens eine isolierte Umgebung zu sein, die keine Auswirkungen auf externe Programme hat. (Wird verwendet, um Programme auszuführen, die wahrscheinlich Viren usw. enthalten.)