Ich versuche, RSelenium mit der Funktion rsDriver auszuführen, aber wenn ich es ausführe rD <- rsDriver()
, wird eine Meldung angezeigt,
dass ich eine neuere Version von Chrome benötige:
> rD <- rsDriver()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)
Could not open chrome browser.
Client error message:
Summary: SessionNotCreatedException
Detail: A new session could not be created.
Further Details: run errorDetails method
Check server log for further details.
Die Fehlermeldung scheint zu sagen, dass ich Chrome Version 74.0.3729.6 benötige. Wenn ich jedoch in den Chrome-Einstellungen nachschaue, wird angezeigt, dass ich die neueste stabile Version (73.0.3683.75) verwende. Beim weiteren Googeln ist 74.0.3729.6 eine Vorabversion von Chrome: Muss ich diese installieren, um ChromeDriver mit RSelenium verwenden zu können?
Ich bin nicht mit der Idee verbunden, Chrome zu verwenden, aber ich konnte rsDriver nicht dazu bringen, Firefox zu verwenden: Wenn ich dies spezifiziere browser = "firefox"
, gibt rsDriver die gleiche Fehlermeldung aus, dass ChromeDriver meine Chrome-Version nicht unterstützt.
Meine Sitzungsinformationen sind:
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.3
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] wdman_0.2.4 forcats_0.3.0 stringr_1.3.1 dplyr_0.7.8 purrr_0.2.5 readr_1.3.1 tidyr_0.8.2
[8] tibble_2.0.1 ggplot2_3.1.0 tidyverse_1.2.1 rvest_0.3.2 xml2_1.2.0 RSelenium_1.7.5
quelle
Antworten:
Ich bin heute auf dasselbe Problem gestoßen und habe diesen und andere Beiträge von Google gefunden. Ich denke, ich habe möglicherweise eine direktere Lösung als Änderung Ihres Codes. Die vorherige Antwort ist richtig, um die Nichtübereinstimmung in Versionen zu identifizieren.
Ich habe die vorgeschlagenen Lösungen ohne Erfolg ausprobiert. Ich habe festgestellt, dass die Versionen auf meinem Computer korrekt waren. Dieser Nichtübereinstimmungsfehler ist jedoch nicht auf die tatsächlich auf dem Computer installierten Versionen zurückzuführen, sondern der RSelenium-Code sucht standardmäßig nach der "neuesten" Version von Chrome / ChromeDriver. Siehe
?rsDriver()
Hilfeseite für die Argumente.Wenn Sie den Code
binman::list_versions("chromedriver")
wie in der Hilfedokumentation angegeben ausführen , können Sie die mit der Funktion kompatiblen Versionen identifizieren. In meinem Fall konnte ich den folgenden Code verwenden, um eine Verbindung herzustellen.driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
Sie sollten in der Lage sein, Ihre Chrome-Version mit dem
chromever=
Argument anzugeben . Ich musste jedoch die nächstgelegene Version verwenden (meine Chrome-Version war "73.0.3683.75").Hoffe das hilft!
quelle
available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)]
Danke dafür!Für MacOS hat das Chromedriver-Upgrade den Trick gemacht:
quelle
chromedriver-beta
eine spätere Version von Chrome erwartet habe. Also, was ich getan habe:brew cask uninstall chromedriver-beta; brew cask install chromedriver
rm /usr/local/bin/chromedriver
und bekam dannbrew cask install chromedriver
die neueste Version. In jedem Fall war ein Upgrade des Chromedriver die Lösung.Diese Fehlermeldung ...
... impliziert, dass der ChromeDriver erwartet, dass die Chrome Browser- Version 74 ist .
Schnelle Installation des neuesten ChromeDriver
So installieren Sie die neueste Version von ChromeDriver :
brew tap homebrew/cask && brew cask install chromedriver
sudo apt-get install chromium-chromedriver
choco install chromedriver
Analyse
Ihr Hauptproblem ist die Inkompatibilität zwischen der Version der Binärdateien, die Sie wie folgt verwenden:
Es besteht also eine eindeutige Nichtübereinstimmung zwischen ChromeDriver v74.0.3729.6 und Chrome Browser v73.0
Lösung
@Test
.driver.quit()
innerhalb dertearDown(){}
Methode auf, um die WebDriver- und Web Client- Instanzen ordnungsgemäß zu schließen und zu zerstören .Referenz
Eine relevante ausführliche Diskussion finden Sie in:
quelle
rD <- rsDriver()
, die endet in:[1] "Connecting to remote server" Could not open chrome browser. Client error message: Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused Check server log for further details. Warning message: In rsDriver() : Could not determine server status.
Selenium
. Diese Antwort bezieht sich nicht aufR
oderRSelenium
überhaupt nicht. Diese akzeptierte Antwort sollte die von @CAD unten sein.Das Aktualisieren der Google Chrome- Version auf 74 hat bei mir funktioniert.
Schritte: 1. Gehen Sie zu Hilfe -> Über Google Chrome -> Chrome sucht automatisch nach Updates (aktualisieren Sie Chrome auf die neueste Version).
quelle
Ich musste Winkelmesser neu installieren, damit das aktualisierte
webdriver-manager
Modul abgerufen werden konnte. Gemäß dem Kommentar von @ Mark wirdpackage-lock.json
die Abhängigkeit möglicherweise gesperrt.Stellen Sie dann sicher, dass Sie den
maxChromedriver
Wertnode_modules/protractor/node_modules/webdriver-manager/config.json
nach der Neuinstallation einchecken, um sicherzustellen, dass er mit der gewünschten Chrome-Treiberversion übereinstimmt.quelle
package-lock.json
sperrte die Abhängigkeit. Es ist kein Fehler, sondern muss nur die Abhängigkeiten aktualisieren.Ich habe mich heute mit diesem Problem befasst und das Upgrade meines Webdrivermanger hat es für mich gelöst (meine vorherige Version war 3.0.0):
quelle
Ich bin gerade auf die gleiche Art von Fehler gestoßen
RSelenium::rsDriver()
, als ich die Standardeinstellung verwendet habechromever = "latest"
, was zu dem fehlgeschlagenen Versuch führte,chromedriver 75.0.3770.8
mit der neuesten zu kombinierengoogle-chrome-stable 74.0.3729.157
:Da dies offensichtlich ein wiederkehrendes und ziemlich ärgerliches Problem zu sein scheint, habe ich mir die folgende Problemumgehung ausgedacht, um immer die neueste kompatible ChromeDriver-Version zu verwenden :
Der obige Code wird nur unter Linux getestet und verwendet einige Tidyverse- Pakete (installieren Sie diese vorher oder schreiben Sie ihn in Base R neu). Bei anderen Betriebssystemen müssen Sie es möglicherweise etwas anpassen, insbesondere durch
command = "google-chrome-stable"
den systemspezifischen Befehl ersetzen , um Google Chrome zu starten:Auf macOS sollte es genug sein , ersetzen
command = "google-chrome-stable"
mitcommand = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
.Unter Windows verhindert ein plattformspezifischer Fehler, dass wir die Google Chrome-Binärdatei direkt aufrufen, um die Versionsnummer zu erhalten. Gehen Sie stattdessen wie folgt vor:
Grundsätzlich stellt der Code nur sicher, dass die neueste ChromeDriver-Version, die mit der Versionsnummer des Major-Minor-Patches des stabilen Google Chrome-Browsers des Systems übereinstimmt, als
chromever
Argument übergeben wird. Dieses Verfahren sollte dem offiziellen ChromeDriver-Versionsschema entsprechen . Zitat:quelle
Ich hatte wirklich Probleme mit dieser Nichtübereinstimmung zwischen ChromeDriver v74.0.3729.6 und dem Chrome Browser v73.0. Ich habe endlich einen Weg gefunden, ChromeDriver auf eine frühere Version zu bringen.
Kopieren Sie unter Chrome> Über Google Chrome die Versionsnummer mit Ausnahme der letzten Gruppe. Zum Beispiel 72.0.3626.
Fügen Sie diese Version am Ende dieser URL ein und besuchen Sie sie. Es wird mit einer Version zurückkommen, die Sie kopieren sollten. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
Zurück in der Befehlszeile ausführen
bundle exec chromedriver-update <copied version>
quelle
Travis CI
Ich hatte das gleiche Problem in Travis und löste es durch Hinzufügen von:
zu meiner
.travis.yml
Datei.quelle
Travis CI Alternative
Eine andere Antwort, da Francesco Borzi bei mir nicht funktioniert hat.
Fügen Sie dies Ihrer travis.yml hinzu:
Vielen Dank und Dank an Tagliala auf Github:
https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672
quelle
Diese Lösung hat bei mir funktioniert
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
quelle
Chrome muss nicht mehr heruntergestuft werden. Wenn dieser Fehler angezeigt wird, ist es nur noch Zeit, ihn
webdriver-manager update
erneut auszuführenquelle
Ist auf dieses Problem gestoßen und konnte es in zwei Hauptschritten lösen:
1 - Update auf den neuesten Chromedriver über Homebrew Cli
2 - Update auf die neueste Version über die Chrome-Benutzeroberfläche
chrome: // settings / help oder
cmd
+,
dann am Ende die Hilfe anheften (nach Wahl)Von dort aus sollten Sie auf der Seite "Über Chrome" landen. Hier müssen Sie überprüfen, ob Sie die neueste und beste Version verwenden (das Problem, auf das ich gestoßen bin, ist auf eine Nichtübereinstimmung in der CLI mit der aktuellen Chrome-Version zurückzuführen).
Wenn Sie den Fehler erhalten, wird eine
update & relaunch
primäre Aktionsschaltfläche angezeigt.Nach dem "Relaunch" von Chrome wird es nun die neueste Version haben, die zu Ihrem Cli passt
Beispiel:
quelle
Gehen Sie einfach zu dieser URL im Chrome-Browser
und Chrome sucht automatisch nach Updates (Chrome auf die neueste Version aktualisieren)
Fertig :)
quelle
Ich habe den gleichen Fehler erhalten, wenn ich ein Roboter-Framework (Selenium-basiertes Framework) in einer Docker- Instanz verwende. Der Grund dafür war, dass Docker
google-chrome-stable_current_amd64.deb
für Chrome zwischengespeichert verwendete, aber den neuesten Chrome-Treiber installiert hat, der eine spätere Version war.Dann habe ich unten Befehl verwendet und Fehler behoben.
Hoffe das hilft jemandem.
quelle
Ich hatte den gleichen Fehler:
Wir führen die Tests von einem Computer aus, der keine echte Benutzeroberfläche hat, daher musste ich über eine Befehlszeile (CLI) arbeiten.
Ich habe zunächst die aktuelle Version von Chrome erkannt, die auf dem Linux-Computer installiert war:
Und bekam diese Antwort:
Also habe ich die Chrome-Version folgendermaßen aktualisiert:
Und nachdem ich die Version noch einmal überprüft hatte, bekam ich Folgendes:
Dann konnten die Selentests reibungslos ablaufen.
quelle
Aktualisiere einfach den Winkelmesser:
npm install protractor @ latest --save-dev
quelle
Sie können die genaue Version Ihrer Chrome-Installation folgendermaßen angeben:
webdriver-manager update --versions.chrome 73.0.3683.75
Möglicherweise müssen Sie
webdriver-manager clean
im Falle eines Downgrades eine erste durchführen.quelle
Ich habe eine Zip - Datei von https://chromedriver.chromium.org/downloads Er sagt : „Wenn Sie Chrome - Version 79 verwenden, laden Sie bitte ChromeDriver 79.0.3945.36“ und ich wurde mit Chrome - Version 79 (I geprüft
chrome://settings/help
) Offenbar ist die Fehler für mich war "Diese Version von ChromeDriver unterstützt nur Chrome Version 78"Und dann habe ich auf die Zip-Datei geklickt und diese "chromedriver" -Datei in ein
/usr/local/bin/
Verzeichnis verschoben . Das hat das Problem gelöst.quelle
Es ist nützlich für Linux-Leute. Mein Problem war trivial, ich habe einen Chrom-Browser verwendet. Ich habe Chrome installiert und alle Probleme wurden behoben. Es könnte mit Chrom funktionieren, aber mit zusätzlichen Aktionen. Ich habe keinen Erfolg erhalten. Ich könnte eine benötigte Treiberversion auf Winkelmesserkonfiguration einstellen. Es wurde die neueste verwendet. Ich brauchte ein Downgrade.
quelle
Ich habe fast die gleichen Probleme wie diese. Die Probleme treten in der Pipeline auf, wenn ich meinen Selentest ausführe, der ein Chromedriver-Paket benötigt, um den e2e-Test auszuführen.
Meine Fehlererstellungspipeline
Das Problem liegt nur daran, dass in der Pipeline (in meinem Fall) die Chrome-Version 73 vorhanden ist und mein Chromedriver-Paket auf Version 74 installiert ist.
quelle
Verwenden von Visual Studio
Ich konnte die Versionsinkongruenz nicht beheben, indem ich bei Verwendung von Visual Studio einer der Antworten folgte, sondern einfach die Nuget-Pakete Selenium.WebDriver und Selenium.WebDriver.ChromeDriver auf die neuesten Versionen aktualisierte.
Ich habe Chrome v78 verwendet, und ein Upgrade von chromedriver auf v78 hat immer noch den Inkompatibilitätsfehler verursacht. Die Antwort von CAD führte mich zur Lösung.
quelle
Das gleiche Problem ist mir heute passiert.
Meine Lösung:
Laden Sie die neueste stabile Version von chromedriver herunter: https://sites.google.com/a/chromium.org/chromedriver/
Aktualisieren Sie den Chrome-Treiber in Ihrem Selenium-Ordner. Dies ist etwas schwierig, da es sich in einem versteckten Ordner auf Ihrem PC namens AppData befindet. So habe ich es auf meinem Computer gemacht (Windows 7):
C:> Benutzer> Ihr Benutzer> \ AppData (Sie müssen dies in das Ordnerpfadfeld schreiben, da es sich um einen versteckten Ordner handelt)> Lokal (dies ist der Ordnername auf Portugiesisch, möglicherweise hat er einen anderen Namen für Sie) > SeleniumBasic
Dort finden Sie die Anwendung chromedriver. Benennen Sie es einfach um (falls es nicht funktioniert, möchten Sie die ältere Version haben) und fügen Sie dann die neueste Version ein.
quelle
Ich hatte vor kurzem das gleiche Problem. Das war mein Fehler:
Dieser Fix hat bei mir funktioniert:
[project_folder]\bin\Debug\netcoreapp2.1
)quelle
Stellen Sie sicher, dass Sie die neueste Version von Webdriver-Manager haben. Sie können das gleiche mit installieren
npm i webdriver-manager@latest --save
Führen Sie dann Folgendes aus
quelle
Ich hatte das gleiche Problem und löste es, indem ich einfach eine
chromedriver
Datei für eine frühere Version von Chrome herunterlud . Ich habe festgestellt, dass Version 79 von Chrome mit der aktuellen Version von Selenium kompatibel ist.Ich habe es dann in einem angegebenen Pfad gespeichert und diesen Pfad mit meinem verknüpft
webdriver
.Die genauen Schritte sind in diesem Link angegeben: http://chromedriver.chromium.org/downloads
quelle
Ich hatte ein ähnliches Problem, gerade den Webdriver Manager auf dem Mac aktualisiert. Verwenden Sie dieses im Terminal, um den Webdriver Manager zu aktualisieren.
quelle
Zum Herunterladen der Google Chrome-Version besuchen Sie die Website = chromedriver.chromium.org
quelle
Ich habe die auf meinem PC installierte Version meines Google Chrome-Browsers überprüft und dann
ChromeDriver
passend zu meiner Browserversion heruntergeladen . Sie können es von https://chromedriver.chromium.org/ herunterladen.quelle