J'essaie d'exécuter RSelenium à l'aide de la fonction rsDriver, mais lorsque j'exécute rD <- rsDriver()
je reçois un message m'indiquant 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 Chrome version 74.0.3729.6, mais lorsque je regarde dans les paramètres de Chrome, il m'indique que j'utilise la dernière version stable (73.0.3683.75). Après une nouvelle recherche sur Google, 74.0.3729.6 est une version de développement pré-version 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 réussi à faire en sorte que rsDriver utilise Firefox: quand je spécifie browser = "firefox"
, rsDriver me donne le même message d'erreur à propos de ChromeDriver ne prenant 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
J'ai rencontré le même problème aujourd'hui et j'ai trouvé ce message et d'autres de Google. Je pense que j'ai peut-être une solution plus directe comme une modification de votre code. La réponse précédente est correcte pour identifier le décalage 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ésulte pas des versions réelles installées sur l'ordinateur, mais le code RSelenium recherche plutôt la "dernière" version de Chrome/ChromeDriver par défaut. Voir la page d'aide de ?rsDriver()
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 le chromever=
argument. Je devais cependant utiliser la version la plus proche (ma chrome était "73.0.3683.75")).
J'espère que cela t'aides!
Ce message d'erreur ...
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)
... implique que ChromeDriver s'attend à ce que la version du navigateur Chrome soit 74 .
Votre problème principal est l'incompatibilité entre la version des binaires que vous utilisez comme suit:
Prise en charge Chrome v74
Il existe donc un décalage évident entre le ChromeDriver v74.0.3729.6 et le navigateur Chrome v73.0
@Test
.driver.quit()
dans la méthode tearDown(){}
pour fermer et détruire le WebDriver et Web Client instances gracieusement.Vous pouvez trouver une discussion détaillée pertinente dans:
Pour la mise à niveau de MacOS chromedriver a fait l'affaire:
brew cask upgrade chromedriver
La mise à jour de la version Google Chrome vers 74 a fonctionné pour moi.
Étapes: 1. Allez dans Aide -> À propos de Google Chrome -> Chrome recherchera automatiquement les mises à jour (update Chrome vers la dernière version)
J'ai dû réinstaller le rapporteur pour qu'il tire la mise à jour webdriver-manager
module. De plus, selon le commentaire de @ Mark, le package-lock.json
peut verrouiller la dépendance.
npm uninstall protractor
npm install --save-dev protractor
Assurez-vous ensuite de vérifier la valeur maxChromedriver
dans node_modules/protractor/node_modules/webdriver-manager/config.json
après la réinstallation pour vérifier qu'il correspond à la Chrome Chrome.
J'ai traité ce problème aujourd'hui et la mise à niveau de mon webdrivermanager l'a résolu pour moi (ma version précédente était 3.0.0):
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
<scope>test</scope>
</dependency>
Je viens de rencontrer le même type d'erreur en utilisant RSelenium::rsDriver()
par défaut chromever = "latest"
paramètre qui a entraîné l'échec de la combinaison de chromedriver 75.0.3770.8
avec le dernier google-chrome-stable 74.0.3729.157
:
session not created: This version of ChromeDriver only supports Chrome version 75
Étant donné que cela semble évidemment être un problème récurrent et assez ennuyeux, j'ai trouvé la solution de contournement suivante pour toujours utiliser la dernière version compatible de ChromeDriver :
rD <- RSelenium::rsDriver(browser = "chrome",
chromever =
system2(command = "google-chrome-stable",
args = "--version",
stdout = TRUE,
stderr = TRUE) %>%
stringr::str_extract(pattern = "(?<=Chrome )\\d+\\.\\d+\\.\\d+\\.") %>%
magrittr::extract(!is.na(.)) %>%
stringr::str_replace_all(pattern = "\\.",
replacement = "\\\\.") %>%
paste0("^", .) %>%
stringr::str_subset(string =
binman::list_versions(appname = "chromedriver") %>%
dplyr::last()) %>%
as.numeric_version() %>%
max() %>%
as.character())
Le code ci-dessus est uniquement testé sous Linux et utilise certains packages tidyverse (installez-les au préalable ou réécrivez-le en base R ). Pour les autres systèmes d'exploitation, vous devrez peut-être l'adapter un peu, en particulier remplacer command = "google-chrome-stable"
avec la commande spécifique au système pour lancer Google Chrome:
Sur macOS il devrait suffire de remplacer command = "google-chrome-stable"
avec command = "/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome"
(non testé).
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. À la place, procédez comme suit:
rD <- RSelenium::rsDriver(browser = "chrome",
chromever =
system2(command = "wmic",
args = 'datafile where name="C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe" get Version /value',
stdout = TRUE,
stderr = TRUE) %>%
stringr::str_extract(pattern = "(?<=Version=)\\d+\\.\\d+\\.\\d+\\.") %>%
magrittr::extract(!is.na(.)) %>%
stringr::str_replace_all(pattern = "\\.",
replacement = "\\\\.") %>%
paste0("^", .) %>%
stringr::str_subset(string =
binman::list_versions(appname = "chromedriver") %>%
dplyr::last())
as.numeric_version() %>%
max() %>%
as.character())
Fondamentalement, le code garantit simplement que la dernière version de ChromeDriver correspondant au numéro de version du correctif majeur-mineur du Google stable du système Chrome navigateur est passée comme chromever
argument. Cette procédure doit respecter le schéma de version officiel de ChromeDriver . Citation:
- ChromeDriver utilise le même schéma de numéros de version que Chrome (...)
- Chaque version de ChromeDriver prend en charge Chrome avec les numéros de version majeurs, mineurs et de build correspondants. Par exemple, ChromeDriver 73.0.3683.20 prend en charge toutes les versions Chrome Chrome commençant par 73.0). .3683.
J'ai eu le même problème dans Travis et résolu en ajoutant:
addons:
chrome: stable
à mon .travis.yml
fichier.
Une autre réponse puisque celle de Francesco Borzi n'a pas fonctionné pour moi.
Ajoutez ceci à votre travis.yml:
addons:
chrome: stable
before_script:
- LATEST_CHROMEDRIVER_VERSION=`curl -s "https://chromedriver.storage.googleapis.com/LATEST_RELEASE"`
- curl "https://chromedriver.storage.googleapis.com/${LATEST_CHROMEDRIVER_VERSION}/chromedriver_linux64.Zip" -O
- unzip chromedriver_linux64.Zip -d ~/bin
Merci beaucoup et merci à tagliala sur github:
Je me débattais vraiment avec cette incompatibilité entre ChromeDriver v74.0.3729.6 et le navigateur Chrome v73.0. J'ai finalement trouvé un moyen d'obtenir ChromeDriver vers une version antérieure,
Dans Chrome> À propos de Google Chrome, copiez le numéro de version, à l'exception du 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 devez copier. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
De retour dans la ligne de commande, exécutez bundle exec chromedriver-update <copied version>
Cette solution a fonctionné pour moi
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
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 un webdriver-manager clean
d'abord en cas de déclassement.
Il n'est plus nécessaire de rétrograder Chrome plus, lorsque vous obtenez cette erreur signifie simplement qu'il est temps d'exécuter webdriver-manager update
encore
J'étais confronté à la même erreur:
session non créée: cette version de ChromeDriver prend uniquement en charge Chrome version 75
...
Informations sur le pilote: driver.version: ChromeDriver
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 a été installée sur l'ordinateur Linux:
$> google-chrome --version
Et j'ai obtenu cette réponse:
Google Chrome 74.0.3729.169
Alors j'ai mis à jour la version Chrome comme ça:
$> Sudo apt-get install google-chrome-stable
Et après avoir vérifié à nouveau la version, j'ai obtenu ceci:
Google Chrome 75.0.3770.100
Ensuite, les tests au sélénium ont pu se dérouler sans problème.
J'ai la même erreur lorsque j'utilise un framework de robot (framework basé sur Selenium) dans une instance Docker. La raison pour laquelle Docker utilisait le 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 a été résolue.
docker-compose build --no-cache
J'espère que cela aide quelqu'un.
Il suffit de mettre à jour le rapporteur:
npm install protractor @ latest --save-dev
Il est utile pour les personnes Linux. Mon problème était banal, j'ai utilisé Chrome-Browser. 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 reçu de succès. Je pouvais définir une version de pilote nécessaire pour la configuration du rapporteur. Il a utilisé la dernière version J'avais besoin d'un déclassement.
J'ai presque les mêmes problèmes comme celui-ci, les problèmes viennent du pipeline lors de l'exécution de mon test Selenium qui nécessite un package chromedriver pour exécuter le test e2e.
Mon pipeline de génération d'erreur
Le problème vient du fait que dans le pipeline (dans mon cas) se trouve le chrome version 73, et mon package chromedriver est installé sur la version 74.
Enfin, il existe deux solutions simples:
- Rétrograder votre chrome
Rétrogradez la version de votre package chromedriver. dans mon cas, car je cours à l'intérieur du pipeline, j'ai besoin d'installer chromedriver avant d'exécuter le test Selenium comme indiqué ci-dessous.
- script: npm install [email protected] --chromedriver-force-download displayName: 'Install Chrome'
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 du chemin du dossier, car c'est 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 souhaitez avoir l'ancienne version) et collez la dernière version.
Ran dans ce problème et a pu résoudre en 2 étapes principales:
brew cask upgrade chromedriver
chrome: // settings/help ou cmd
+ ,
puis à la fin de l'aide (votre choix)
à partir de là, vous devriez atterrir sur la page À propos de Chrome. Ici, vous devrez vérifier que vous êtes sur la dernière et la meilleure version (le problème que je rencontrais provenait d'un décalage dans le cli vs le version actuelle chrome)
si vous obtenez l'erreur, vous verrez un update & relaunch
bouton d'action principale.
après chrome "relaches" il aura désormais la dernière version correspondant à votre cli
exemple:
Google Chrome is up to date
Version 80.0.3987.87 (Official Build) (64-bit)
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
Exécutez ensuite ce qui suit
command.webdriver-manager update
J'ai eu le même problème et je l'ai résolu en téléchargeant simplement un fichier chromedriver
pour une version précédente de Chrome. J'ai constaté 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
J'ai eu le même problème récemment. Ce fut mon erreur:
System.InvalidOperationException : session not created: This version of ChromeDriver only supports Chrome version 76 (SessionNotCreated)
Cette correction a fonctionné pour moi:
[project_folder]\bin\Debug\netcoreapp2.1
)Je n'ai pas pu résoudre le problème de version en suivant l'une des réponses lors de l'utilisation de Visual Studio, mais simplement en mettant à jour les packages de nuget Selenium.WebDriver et Selenium.WebDriver.ChromeDriver vers les dernières versions.
J'utilisais Chrome v78, et la mise à niveau de chromedriver vers v78 donnait toujours l'erreur d'incompatibilité. La réponse de CAD m'a conduit à la solution.
$ which chromedriver
/usr/local/bin/chromedriver
$ chromedriver --version
ChromeDriver 78.0.3904.105
J'ai téléchargé un fichier Zip à partir de https://chromedriver.chromium.org/downloads Il dit "Si vous utilisez Chrome version 79, veuillez télécharger ChromeDriver 79.0.3945.36 "et j'utilisais Chrome version 79. (J'ai vérifié chrome://settings/help
) Apparemment, l'erreur pour moi était "Cette version de ChromeDriver ne prend en charge que Chrome version 78"
Et puis j'ai cliqué sur le fichier Zip et déplacer ce fichier "chromedriver" dans /usr/local/bin/
répertoire. Cela a résolu le problème.
$ which chromedriver
$ chromedriver --version
ChromeDriver 79.0.3945.36