web-dev-qa-db-fra.com

session non créée: cette version de ChromeDriver prend uniquement en charge Chrome version 74 avec ChromeDriver Chrome utilisant Selenium

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
130
Matthew Law

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!

26
CAD

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

  • Vous utilisez actuellement chrome = 73.0

Il existe donc un décalage évident entre le ChromeDriver v74.0.3729.6 et le navigateur Chrome v73.0


Solution

  • Rétrograder ChromeDriver à ChromeDriver v73.0.3683.68 niveau.
  • Gardez la version Chrome au niveau Chrome v73 . ( selon les notes de version de ChromeDriver v73.0.3683.68 )
  • Nettoyez votre espace de travail de projet à travers votre [~ # ~] ide [~ # ~] et Reconstruisez votre projet avec les dépendances requises uniquement.
  • Si votre version de base du client Web est trop ancienne, désinstallez-la et installez une version récente GA et la version publiée de Client Web .
  • Exécutez votre @Test.
  • Appelez toujours driver.quit() dans la méthode tearDown(){} pour fermer et détruire le WebDriver et Web Client instances gracieusement.

Référence

Vous pouvez trouver une discussion détaillée pertinente dans:

50
DebanjanB

Pour la mise à niveau de MacOS chromedriver a fait l'affaire:

brew cask upgrade chromedriver
49
Yurii Verbytskyi

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)

enter image description here

21
Atul

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.

17
demisx

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>
8
cmlonder

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.
4
Salim B

Travis CI

J'ai eu le même problème dans Travis et résolu en ajoutant:

addons:
  chrome: stable

à mon .travis.yml fichier.

3
Francesco Borzi

Alternative à Travis CI

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:

https://github.com/diowa/Ruby2-Rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672

2
lucas

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,

  1. Dans Chrome> À propos de Google Chrome, copiez le numéro de version, à l'exception du dernier groupe. Par exemple, 72.0.3626.

  2. 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_

  3. De retour dans la ligne de commande, exécutez bundle exec chromedriver-update <copied version>

2
DanaG.

Cette solution a fonctionné pour moi

  1. Assurez-vous que vous utilisez R 3.5.3 ou supérieur
  2. driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
2
stevec

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.

1
whitebrow

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

1
Bogdan Martinescu

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.

1
riorio

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.

1
Arosha

Il suffit de mettre à jour le rapporteur:

npm install protractor @ latest --save-dev

1
Gi1ber7

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.

0
viktor.likin

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:

  1. Rétrograder votre chrome
  2. 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'

0
Gadani

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:

1 - Mise à jour vers le dernier chromedriver via homebrew cli

brew cask upgrade chromedriver

2 - mise à jour vers la dernière version via Chrome GUI

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)
0
Denis S Dujota

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
0
Rahul Tokase

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

0
Omer Hen

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:

  • assurez-vous qu'il n'y a pas de processus chromedriver.exe en cours d'exécution (si nécessaire, tuez-les tous, par exemple via le gestionnaire de tâches)
  • allez dans le dossier bin et supprimez le fichier chromedriver.exe à partir de là (dans mon cas, c'était: [project_folder]\bin\Debug\netcoreapp2.1)
0
krupaluke

Utilisation de Visual Studio

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.

0
GuyB
$ 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
0
kangkyu