J'essaie d'exécuter RSelenium à l'aide de la fonction rsDriver, mais lorsque je l'exécute,
rD <- rsDriver()
je reçois un message me disant que j'ai besoin d'une version plus récente de Chrome:
> 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.
Le message d'erreur semble indiquer que j'ai besoin de la version 74.0.3729.6 de Chrome, mais lorsque je regarde dans les paramètres de Chrome, cela m'indique que j'utilise la dernière version stable (73.0.3683.75). Après une recherche approfondie sur Google, 74.0.3729.6 est une version de développement préliminaire de Chrome: dois-je l'installer pour utiliser ChromeDriver avec RSelenium?
Je ne suis pas attaché à l'idée d'utiliser Chrome, mais je n'ai pas pu faire en sorte que rsDriver utilise Firefox: lorsque je le spécifie browser = "firefox"
, rsDriver me donne le même message d'erreur indiquant que ChromeDriver ne prend pas en charge ma version de Chrome.
Mes informations de session sont:
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
la source
Réponses:
J'ai rencontré le même problème aujourd'hui et j'ai trouvé ce message et d'autres de Google. Je pense avoir une solution plus directe comme une modification de votre code. La réponse précédente est correcte pour identifier l'incohérence dans les versions.
J'ai essayé les solutions proposées en vain. J'ai trouvé que les versions étaient correctes sur mon ordinateur. Cependant, cette erreur de non-concordance ne résultait pas des versions réelles installées sur l'ordinateur, mais plutôt le code RSelenium recherche la «dernière» version de Chrome / ChromeDriver par défaut. Voir la
?rsDriver()
page d'aide pour les arguments.Si vous exécutez le code
binman::list_versions("chromedriver")
comme spécifié dans la documentation d'aide, vous pouvez identifier les versions de compatible avec la fonction. Dans mon cas, j'ai pu utiliser le code suivant pour établir une connexion.driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
Vous devriez pouvoir spécifier votre version de Chrome avec l'
chromever=
argument. J'ai dû utiliser la version la plus proche, cependant (ma version chrome était "73.0.3683.75").J'espère que cela t'aides!
la source
available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)]
Merci pour cela!Pour MacOS, la mise à niveau de chromedriver a fait l'affaire:
la source
chromedriver-beta
, ce qui m'attendait à une version ultérieure de Chrome. Alors ce que j'ai fait:brew cask uninstall chromedriver-beta; brew cask install chromedriver
rm /usr/local/bin/chromedriver
et ensuitebrew cask install chromedriver
pour obtenir la dernière version. Dans tous les cas, la mise à niveau de chromedriver était la solution.Ce message d'erreur ...
... implique que ChromeDriver s'attend à ce que la version du navigateur Chrome soit 74 .
Installation rapide du dernier ChromeDriver
Pour installer la dernière version de ChromeDriver, vous pouvez utiliser:
brew tap homebrew/cask && brew cask install chromedriver
sudo apt-get install chromium-chromedriver
choco install chromedriver
Une analyse
Votre principal problème est l' incompatibilité entre la version des binaires que vous utilisez comme suit:
Il existe donc une discordance claire entre le ChromeDriver v74.0.3729.6 et le navigateur Chrome v73.0
Solution
@Test
.driver.quit()
dans latearDown(){}
méthode pour fermer et détruire les instances WebDriver et Web Client en douceur.Référence
Vous pouvez trouver une discussion détaillée pertinente dans:
la source
rD <- rsDriver()
, se terminant par:[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
. Cette réponse ne fait pas référenceR
ou pasRSelenium
du tout. Cette réponse acceptée doit être celle de @CAD ci-dessous.La mise à jour de la version de Google Chrome à 74 a fonctionné pour moi.
Étapes: 1. Accédez à Aide -> À propos de Google Chrome -> Chrome recherchera automatiquement les mises à jour (mettez à jour Chrome vers la dernière version)
la source
J'ai dû réinstaller le rapporteur pour qu'il tire le
webdriver-manager
module mis à jour . De plus, selon le commentaire de @ Mark, lepackage-lock.json
peut verrouiller la dépendance.Ensuite, assurez-vous de vérifier la
maxChromedriver
valeurnode_modules/protractor/node_modules/webdriver-manager/config.json
après la réinstallation pour vérifier qu'elle correspond à la version du pilote Chrome souhaitée.la source
package-lock.json
bloquait la dépendance. Ce n'est pas un bogue, il suffit de mettre à jour les dépendances.J'ai traité ce problème aujourd'hui et la mise à niveau de mon pilote Web l'a résolu pour moi (ma version précédente était 3.0.0):
la source
Je viens de rencontrer le même type d'erreur en utilisant
RSelenium::rsDriver()
lechromever = "latest"
paramètre par défaut de, ce qui a entraîné l'échec de la tentative de combinaisonchromedriver 75.0.3770.8
avec le derniergoogle-chrome-stable 74.0.3729.157
:Comme cela semble évidemment être un problème récurrent et assez ennuyeux, j'ai mis au point la solution de contournement suivante pour toujours utiliser la dernière version compatible de ChromeDriver :
Le code ci-dessus n'est testé que sous Linux et utilise certains paquets tidyverse (installez-les au préalable ou réécrivez-le dans la base R). Pour les autres systèmes d'exploitation, vous devrez peut-être l'adapter un peu, en particulier le remplacer
command = "google-chrome-stable"
par la commande spécifique au système pour lancer Google Chrome:Sur macOS, il devrait suffire de le remplacer
command = "google-chrome-stable"
parcommand = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
.Sous Windows, un bogue spécifique à la plate-forme nous empêche d'appeler directement le binaire Google Chrome pour obtenir son numéro de version. Procédez plutôt comme suit:
Fondamentalement, le code garantit simplement que la dernière version de ChromeDriver correspondant au numéro de version du correctif majeur-mineur du navigateur Google Chrome stable du système est transmise en
chromever
argument. Cette procédure doit respecter le schéma de version officiel de ChromeDriver . Citation:la source
J'avais vraiment du mal avec cette incompatibilité entre ChromeDriver v74.0.3729.6 et le navigateur Chrome v73.0. J'ai enfin trouvé un moyen d'obtenir ChromeDriver vers une version antérieure,
Dans Chrome> À propos de Google Chrome, copiez le numéro de version, sauf pour le dernier groupe. Par exemple, 72.0.3626.
Collez cette version à la fin de cette URL et visitez-la. Il reviendra avec une version que vous devrez copier. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
De retour dans la ligne de commande, exécutez
bundle exec chromedriver-update <copied version>
la source
Travis CI
J'ai eu le même problème dans Travis et résolu en ajoutant:
à mon
.travis.yml
dossier.la source
Alternative à Travis CI
Une autre réponse puisque celle de Francesco Borzi n'a pas fonctionné pour moi.
Ajoutez ceci à votre travis.yml:
Merci beaucoup et merci à tagliala sur github:
https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672
la source
Cette solution a fonctionné pour moi
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
la source
Il n'y a pas besoin de rétrograder Chrome plus, quand vous obtenez cette erreur signifie seulement qu'il est temps de courir à
webdriver-manager update
nouveaula source
Ran dans ce problème et a pu résoudre en 2 étapes principales:
1 - Mise à jour vers le dernier chromedriver via homebrew cli
2 - mise à jour vers la dernière version via l'interface graphique Chrome
chrome: // paramètres / aide ou
cmd
+,
puis aide à la fin (votre choix)à partir de là, vous devriez atterrir sur la page À propos de Chrome. Ici, vous devrez vérifier que vous utilisez la dernière et la meilleure version (le problème que je rencontrais provenait d'une incompatibilité entre le cli et la version actuelle de chrome)
si vous obtenez l'erreur, vous verrez un
update & relaunch
bouton d'action principal.après le "relancement" de chrome, la dernière version correspondant à votre cli
exemple:
la source
allez simplement à cette URL dans le navigateur Chrome
et Chrome recherchera automatiquement les mises à jour (mettez à jour Chrome vers la dernière version)
terminer :)
la source
J'ai eu la même erreur lorsque j'utilise un framework de robot (framework basé sur Selenium) dans une instance Docker . La raison était que docker utilisait mis en cache
google-chrome-stable_current_amd64.deb
pour Chrome, mais il a installé le dernier pilote chrome qui était une version ultérieure.Ensuite, j'ai utilisé la commande ci-dessous et l'erreur résolue.
J'espère que cela aide quelqu'un.
la source
J'étais confronté à la même erreur:
Nous exécutons les tests à partir d'un ordinateur qui n'a pas de véritable interface utilisateur, j'ai donc dû travailler via une ligne de commande (CLI).
J'ai commencé par détecter la version actuelle de Chrome qui était installée sur l'ordinateur Linux:
Et j'ai obtenu cette réponse:
Alors j'ai mis à jour la version Chrome comme ça:
Et après avoir vérifié à nouveau la version, j'ai obtenu ceci:
Ensuite, les tests Selenium ont pu se dérouler sans heurts.
la source
Mettez simplement à jour le rapporteur:
npm install protractor @ latest --save-dev
la source
Vous pouvez spécifier la version exacte de votre installation Chrome comme ceci:
webdriver-manager update --versions.chrome 73.0.3683.75
Vous devez peut-être faire une
webdriver-manager clean
première en cas de rétrogradation.la source
J'ai téléchargé un fichier zip sur https://chromedriver.chromium.org/downloads Il dit "Si vous utilisez la version 79 de Chrome, veuillez télécharger ChromeDriver 79.0.3945.36" et j'utilisais la version 79 de Chrome. (J'ai vérifié
chrome://settings/help
) Apparemment, le l'erreur pour moi était "Cette version de ChromeDriver ne prend en charge que la version 78 de Chrome"Et puis j'ai cliqué sur le fichier zip et déplacé ce fichier "chromedriver" dans le
/usr/local/bin/
répertoire. Cela a résolu le problème.la source
C'est utile pour les utilisateurs de Linux. Mon problème était trivial, j'ai utilisé le navigateur chrome. J'ai installé chrome et tous les problèmes ont été résolus. Cela pourrait fonctionner avec du chrome mais avec des actions supplémentaires. Je n'ai pas eu de succès. Je pourrais définir une version de pilote nécessaire pour la configuration du rapporteur. Il a utilisé le dernier. J'avais besoin d'un déclassement.
la source
J'ai presque les mêmes problèmes comme celui-ci, les problèmes viennent dans le pipeline lors de l'exécution de mon test de sélénium qui nécessite le package chromedriver pour exécuter le test e2e.
Mon pipeline de construction d'erreur
Le problème vient du fait que dans le pipeline (dans mon cas) il y a la version 73 de chrome et que mon package chromedriver est installé sur la version 74.
la source
Utilisation de Visual Studio
Je n'ai pas pu résoudre l'incompatibilité de version en suivant l'une des réponses lors de l'utilisation de Visual Studio, mais la mise à jour simple des packages de nuget Selenium.WebDriver et Selenium.WebDriver.ChromeDriver vers les dernières versions a fonctionné.
J'utilisais Chrome v78 et la mise à niveau de chromedriver vers la version v78 provoquait toujours l'erreur d'incompatibilité. La réponse de CAD m'a conduit à la solution.
la source
Le même problème m'est arrivé aujourd'hui.
Ma solution:
Téléchargez la dernière version stable de chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
Mettez à jour le pilote Chrome sur votre dossier Selenium. C'est un peu difficile, car il se trouve dans un dossier caché sur votre PC appelé AppData. Voici comment je l'ai fait sur mon ordinateur (Windows 7):
C:> utilisateurs> votre utilisateur> \ AppData (vous devez écrire ceci dans la zone de chemin du dossier, car il s'agit d'un dossier caché)> Local (c'est le nom du dossier en portugais, peut-être qu'il aura un nom différent pour vous) > SéléniumBasic
Vous y trouverez l'application chromedriver. Renommez-le simplement (au cas où cela ne fonctionnerait pas, vous voulez avoir l'ancienne version) et collez la dernière version.
la source
J'ai eu le même problème récemment. C'était mon erreur:
Ce correctif a fonctionné pour moi:
[project_folder]\bin\Debug\netcoreapp2.1
)la source
Assurez-vous que vous disposez de la dernière version de webdriver-manager. Vous pouvez installer le même en utilisant
npm i webdriver-manager@latest --save
Puis exécutez ce qui suit
la source
J'ai eu le même problème et je l'ai résolu en téléchargeant simplement un
chromedriver
fichier pour une version précédente de chrome. J'ai trouvé que la version 79 de Chrome est compatible avec la version actuelle de Selenium.Je l'ai ensuite enregistré dans un chemin spécifié et lié ce chemin à mon
webdriver
.Les étapes exactes sont spécifiées dans ce lien: http://chromedriver.chromium.org/downloads
la source
J'ai eu un problème similaire, je viens de mettre à jour le gestionnaire de pilote Web sur Mac, utilisez-le dans le terminal pour mettre à jour le gestionnaire de pilote Web
la source
Pour télécharger la version Google Chrome, visitez le site = chromedriver.chromium.org
la source
J'ai vérifié la version de mon navigateur google chrome installée sur mon PC puis téléchargée
ChromeDriver
adaptée à la version de mon navigateur. Vous pouvez le télécharger sur https://chromedriver.chromium.org/la source