Ich versuche, Chrome mit einer URL zu starten, der Browser wird gestartet und danach wird nichts mehr ausgeführt.
Nach 1 Minute wird der folgende Fehler angezeigt:
Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
(Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)
Meine Konfiguration:
- Chrome: 66
- ChromeBrowser: 2.39.56
PS: In Firefox funktioniert alles einwandfrei
google-chrome
selenium
selenium-webdriver
webdriver
selenium-chromedriver
Kumar Sampath
quelle
quelle
Antworten:
Diese Fehlermeldung ...
... bedeutet , dass die ChromeDriver nicht in der Lage waren , einen neuen zu initiieren / laichen WebBrowser dh Chrome Browser - Sitzung.
Ihre Codeversuche und die Versionsinformationen aller Binärdateien hätten uns einen Hinweis darauf gegeben, was falsch läuft.
Da jedoch pro --disable-dev-shm-Nutzung Standardstart Flags hinzufügen scheint das Argument hinzugefügt
--disable-dev-shm-usage
wird vorübergehend das Problem lösen.Wenn Sie eine neue Chrome-Browsersitzung initiieren / überspannen möchten , können Sie die folgende Lösung verwenden:
disable-dev-shm-usage
Wie pro base_switches.cc
disable-dev-shm-usage
scheint nur gültig zu sein Linux - Betriebssystem :Fügen Sie in der Diskussion eine Option hinzu, um / tmp anstelle von / dev / shm zu verwenden. David erwähnt:
Outro
Hier ist der Link zur Sandbox- Geschichte.
quelle
DevToolsActivePort file doesn't exist
und warum ist er plötzlich aufgetaucht?disable-dev-shm-usage
war es nicht genug , nur etwas hinzuzufügen . Ich musste auch hinzufügen--no-sandbox
, damit es funktioniert. Dies war die komplette Lösung für mich für Selenium-Java:chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
Ich habe dieses Problem am Montag 2018-06-04 gesehen. Unsere Tests finden an jedem Wochentag statt. Es scheint, dass das einzige, was sich geändert hat, die Google-Chrome-Version (die auf die aktuelle Version aktualisiert wurde) war. JVM und Selenium waren neuere Versionen unter Linux (Java 1.8.0_151, Selen 3.12.0, Google-Chrome 67.0.3396.62 und xvfb-run).
Insbesondere das Hinzufügen der Argumente " --no- sandbox " und " --disable-dev-shm-usage " hat den Fehler gestoppt. Ich werde mich mit diesen Problemen befassen, um weitere Informationen über den Effekt und andere Fragen zu erhalten, z. B. darüber, was die Aktualisierung von Google-Chrome ausgelöst hat.
quelle
[java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000
FehlerWir hatten die gleichen Probleme mit unseren Jenkins-Slaves (Linux-Maschine) und haben alle oben genannten Optionen ausprobiert.
Das einzige, was geholfen hat, ist das Argument zu setzen
Als wir jedoch weiter nachforschten, stellten wir fest, dass der XVFB-Bildschirm keine Eigenschaft gestartet hat und dies diesen Fehler verursacht. Nachdem wir den XVFB-Bildschirm repariert hatten, wurde das Problem behoben.
quelle
Ich hatte das gleiche Problem in Python. Das obige hat geholfen. Folgendes habe ich in Python verwendet:
quelle
Aktualisieren:
Ich bin in der Lage, das Problem zu lösen, und jetzt kann ich mit der gewünschten URL auf das Chrom zugreifen.
Ergebnisse des Versuchs der bereitgestellten Lösungen:
Ich habe alle oben angegebenen Einstellungen ausprobiert, konnte das Problem jedoch nicht beheben
Erläuterung zum Problem:
Nach meiner Beobachtung wird die nicht vorhandene DevToolsActivePort-Datei verursacht, wenn Chrome seine Referenz nicht im Ordner scoped_dirXXXXX finden kann.
Schritte zur Lösung des Problems
Der folgende Code wurde hinzugefügt, um das Chrome aufzurufen
Mit den obigen Schritten konnte ich das Problem beheben.
Danke für deine Antworten.
quelle
Ich hatte kürzlich das gleiche Problem und nach einigem Ausprobieren funktionierte es auch für mich.
MUSS OBEN SEIN:
BaseSeleniumTests.java
GoogleSearchPageTraditionalSeleniumTests.java
pom.xml
quelle
In meinem Fall in der folgenden Umgebung:
3.7.5
C:\Windows
3.141.0
Ich musste die Argumente
--no-sandbox
und--remote-debugging-port=9222
zumChromeOptions
Objekt hinzufügen und den Code als Administrator ausführen, indem ich Powershell / cmd als Administrator zu Mittag aß.Hier ist der zugehörige Code:
quelle
Ich bin auf dieses Problem unter Ubuntu 20 mit Python Selenium gestoßen, nachdem ich zuerst den Chromedriver separat heruntergeladen und dann verwendet hatte.
sudo apt install chromium-browser
Obwohl es sich um dieselbe Version handelte, passierte dies immer wieder.Mein Fix bestand darin, den mitgelieferten Chrome-Treiber zu verwenden, der mit dem Repo-Paket unter geliefert wurde
quelle
Wie in dieser anderen Antwort angegeben :
Unter den möglichen Ursachen möchte ich die Tatsache erwähnen, dass Sie für den Fall, dass Sie ein kopfloses Chromium über Xvfb ausführen, möglicherweise
export
dieDISPLAY
Variable benötigen : In meinem Fall hatte ich (wie empfohlen) die Optionen--disable-dev-shm-usage
und--no-sandbox
, alles war vorhanden läuft einwandfrei, aber in einer neuen Installation, die das neueste (zum Zeitpunkt des Schreibens) Ubuntu 18.04 ausführt, trat dieser Fehler auf, und der einzig mögliche Fix bestand darin, ein auszuführenexport DISPLAY=":20"
(nachdem zuvor Xvfb mit gestartet wurdeXvfb :20&
).quelle
Dieses Problem trat auch bei der Integration in den Jenkins-Server auf. Ich wurde als Root- Benutzer für den Jenkins-Job verwendet. Das Problem wurde behoben, als ich den Benutzer in einen anderen Benutzer änderte . Ich bin nicht sicher, warum dieser Fehler für den Root-Benutzer auftritt.
quelle
In meinem Fall ist es passiert, als ich versucht habe, mein Standardbenutzerprofil zu verwenden:
Dies löste Chrome aus, um Prozesse, die bereits im Hintergrund ausgeführt wurden, wiederzuverwenden, sodass der von chromedriver.exe gestartete Prozess einfach beendet wurde.
Lösung: Beenden Sie alle chrome.exe-Prozesse, die im Hintergrund ausgeführt werden.
quelle
Aktualisierungsfunktionen in conf.js als
quelle
In meinem Fall habe ich versucht, ein lauffähiges JAR unter Windows mit einem Chrome-Browser zu erstellen, und möchte dasselbe im Headless-Modus in einer Unix-Box mit CentOs ausführen. Und ich habe meine Binärdatei auf einen Treiber gerichtet, den ich heruntergeladen und mit meiner Suite gepackt habe. Für mich tritt dieses Problem weiterhin auf, unabhängig davon, ob Folgendes hinzugefügt wird:
Die Lösung, die ich für mich ausprobiert und gearbeitet habe, ist, das Chrome und seine Tools auf die Host-VM / Unix-Box herunterzuladen, die Binärdatei in der Automatisierungssuite und im Bingo zu installieren und darauf zu verweisen! Es klappt :)
Download-Befehl:
Installationsbefehl:
Aktualisieren Sie die Suite mit dem folgenden binären Pfad von Google-Chrome:
Und es funktioniert!
quelle
Ich hatte das gleiche Problem, aber in meinem Fall wurde Chrome zuvor im temporären Benutzerordner installiert, nachdem es erneut in Programmdateien installiert wurde. Eine der hier angebotenen Lösungen hat mir also nicht geholfen. Wenn Sie jedoch den Pfad zu chrome.exe angeben, funktioniert alles:
Ich hoffe das hilft jemandem =)
quelle
Für mich hat keine Lösung funktioniert. Aber hier ist eine Problemumgehung:
quelle
Sie können diesen Fehler einfach erhalten, wenn Sie schlechte Argumente an Chrome übergeben. Wenn ich zum Beispiel
"headless"
als Argument an den C # ChromeDriver übergebe, wird es großartig gestartet. Wenn ich einen Fehler mache und die falsche Syntax verwende,"--headless"
wird derDevToolsActivePort file doesn't exist
Fehler angezeigt.quelle
Ich bin auf dasselbe Problem gestoßen, ich verwende den Browser UBUNTU, PYTHON und OPERA . In meinem Fall entstand das Problem, weil ich eine veraltete Version von Operadriver hatte.
Lösung: 1. Stellen Sie sicher, dass Sie die neueste Version des Opernbrowsers installieren (verwenden Sie keine Opern-Beta oder keinen Opernentwickler). Gehen Sie dazu zur offiziellen Opern-Site und laden Sie von dort die neueste Version von opera_stable herunter.
wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip
in meinem Fall war spätestens 80.0.3987, wie Sie sehen können
Zusätzlich habe ich auch chromedriver installiert (aber da ich es vor dem Testen getan habe, weiß ich nicht, dass dies erforderlich ist), um chromedriver zu installieren, folge den Schritten des vorherigen Schritts: v
Viel Spaß und danke mir!
Beispiel für einen Selencode
quelle
Es scheint, dass es viele mögliche Ursachen für diesen Fehler gibt. In unserem Fall ist der Fehler aufgetreten, weil wir die folgenden zwei Zeilen im Code hatten:
Es wird gelöst, indem die zweite Zeile entfernt wird.
quelle
Ich bin auf dasselbe Problem gestoßen, bei dem Chrome über Behat / Mink und Selenium in einem Docker-Container ausgeführt wurde. Nach einigem Fummeln kam ich zu folgendem,
behat.yml
das die oben genannten Schalter liefert. Beachten Sie, dass alle erforderlich waren, damit ich es erfolgreich zum Laufen bringen konnte.quelle
In meinem Fall bin ich in einer Kubernetes-Umgebung, in der ich das Standard-TMPDIR nicht verwenden kann, da es das temporäre Verzeichnis mit Müll füllt.
Also habe ich dies verwendet, um ein anderes tmpdir zu verwenden:
Aber jetzt, da ich alles auf den neuesten Stand gebracht habe, scheint dies nicht mehr zu funktionieren. Ich muss einen neuen Weg finden, um dies zu tun.
quelle
Es passiert, wenn chromedriver nicht herausfindet, welchen Debugging-Port Chrome verwendet.
Eine mögliche Ursache ist ein offener Fehler bei HKEY_CURRENT_USER \ Software \ Policies \ Google \ Chrome \ UserDataDir
Aber in meinem letzten Fall war es eine andere unbekannte Ursache.
Glücklicherweise funktionierte das manuelle Einstellen der Portnummer:
quelle
Falsche Portnummer in meinem Fall. Überprüfen Sie, ob die Portnummer beim Starten des Selenium-Servers mit der in Ihrem Skript übereinstimmt.
quelle
Ich löse dieses Problem durch Installation
yum -y install gtk3-devel gtk3-devel-docs
", es funktioniert in OrdnungMeine Arbeit env ist:
Vor:
Nach dem:
quelle
Da dies die aktivste Meldung für diese Art von Fehler ist, wollte ich meine Lösung erwähnen (nachdem ich Stunden damit verbracht hatte, dies zu beheben).
Unter Ubuntu 18.04 mit Chrome 70 und Chromedriver 2.44 sowie Python3 wurde immer wieder der gleiche DevToolsActivePort-Fehler angezeigt, auch wenn ich alle oben aufgeführten Optionen deaktiviert habe. Die chromedriver-Protokolldatei sowie ps zeigten, dass der in chrome_options.binary_location festgelegte chromedriver ausgeführt wurde, aber es gab immer einen DevToolsActivePort-Fehler. Wenn ich chrome_options.binary_location = '....' entfernt und zur Webdriver-Erstellung hinzugefügt habe, funktioniert es einwandfrei. webdriver.Chrome ('/ Pfad zu ... / chromedriver', chrome_options = chrome_options)
Vielen Dank an alle für Ihre Kommentare, die mich das Problem verstehen und lösen lassen.
quelle