erreur inconnue: résultat de la fonction d'appel manquant `` valeur '' pour les clés d'envoi de sélénium même après la mise à niveau de chromedriver

110

J'obtiens l'erreur ci-dessous lors de l'envoi des clés.

Message de résultat:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 10.0.14393 x86_64)

J'ai mis à jour le pilote chrome à 2.36 mais toujours ma recherche de code pour 2.33?

Une idée ?

Zaki Ahmed
la source
Même problème ici depuis hier. Dans mon cas, je pense que le problème est une combinaison de pilote chrome v65 sans tête + sélénium v2.34 (le journal des modifications dit qu'il est compatible avec chrome v61-63)
Jorge Arévalo

Réponses:

115

J'ai eu la même erreur, veuillez télécharger la dernière version de ChromeDriver et / ou mettre à jour la version du navigateur Chrome et cela fonctionnera bien :)

https://chromedriver.storage.googleapis.com/index.html?path=2.36/

Codeur
la source
1
Je l'ai téléchargé et référencé sous le nom de Nuget et supprimé toutes les références à 2.33 mais il se connecte toujours à l'ancien 2.33?
Zaki Ahmed
2
J'ai téléchargé le dernier chromedriver 2.36 et cela ne fonctionne toujours pas avec la version 65.0.3325.146 de Chrome (version officielle) (64 bits) Au moins sur Mac OS :(
neliCZka
2
Oh, je m'excuse, j'ai mal configuré mon chemin, et après l'avoir lié au nouveau chromedriver, mon script fonctionne maintenant. J'utilise une machine Windows en passant.
Cliff Chew
6
Si vous utilisez github.com/flavorjones/chromedriver-helper gem, puis exécutez dans la consolechromedriver-update 2.36
Bachet
4
Si vous utilisez Homebrew, vous pouvez exécuterbrew upgrade chromedriver
Diego Carrion
23


Après avoir mis à jour le navigateur Google Chrome vers la version 65.0.3325.146 (version officielle) (64 bits) , je suis également confronté à la même erreur lors de l'envoi de valeurs dans le champ de saisie, voici le message d'erreur ...

selenium.common.exceptions.WebDriverException: Message: unknown error: call function result missing 'value'

en utilisant Chromedriver 2.32 et Google Chrome 65.0

En faisant des recherches sur le même sujet, j'ai trouvé un commit récent sur les changelogs de Google Chrome v65 qui m'aide à résoudre le problème.

Solution:

  • Mettez à jour Google Chrome vers la dernière version stable (dans mon cas, c'est la v65 le 9 / mars / 2018)
  • Téléchargez et configurez le dernier chromedriver (v2.36). Pour configurer chromedriver (sur Ubuntu), suivez ces étapes ...

    1. Extrayez le fichier zip téléchargé.
    2. Copiez le fichier chromedriver extrait dans / usr / local / bin ou à l'emplacement où vous stockez habituellement les binaires exécutables.
    3. Ajoutez le même chemin (où vous placez le fichier chromedriver) à la variable d'environnement PATH comme

export PATH = $ PATH: / usr / local / bin

  1. Pour tester l'installation, redémarrez le terminal et tapez cette commande

chromedriver --version

il afficherait la version de chromedriver que vous venez d'installer.

Remarque: si le chromedriver est déjà installé et configuré, remplacez simplement le fichier de pilote existant et si vous ne savez pas où les binaires Chromedriver sont déjà stockés, essayez de trouver le fichier à l'aide de la commande suivante

 sudo find -H / -type f -iname chromedriver
AKay Nirala
la source
13

C'est à cause de la mise à jour de la version du navigateur Chrome de 64.xx à 65.xx

Vous avez maintenant 2 options pour exécuter vos tests avec succès.

  1. Rétrograder votre navigateur Chrome à la version précédente et avec l'ancien pilote chromé que vous avez maintenant.

  2. Mettez à niveau votre Chromedriver vers la version 2.36 avec le navigateur Chrome mis à jour.

    visitez https://chromedriver.storage.googleapis.com/index.html?path=2.36 et téléchargez le nouveau chromedriver.

L'option 2 est meilleure.

Deepak N
la source
Je suis dans l'environnement suivant: Ubuntu 16.04, GoogleChrome 65.0.3325.146, ChromeDriver 2.36.540471. Et j'obtiens toujours l'erreur exacte ci-dessus. Que dois-je changer? L'erreur, cependant, indique que j'utilise la version 2.33.506092 de chromedriver ...
Armin
Vous devez mentionner le chemin exact du dernier chromedriver que vous avez mis à jour et non un ancien. ou Remplacez l'ancien chromedriver par un neuf. Vérifiez-le.
Deepak N
Si quelqu'un rencontre cette erreur dans Visual studio, la mise à niveau vers le package Nuget du pilote Web Chrome vers la version 2.37 (au moment de la rédaction) résoudra cette erreur.
Gunarathinam
12

Remplacez votre ChromeDriver.exe par la dernière version. Le même peut être téléchargé à partir de Google facilement.

Il est également préférable de le faire automatiquement en utilisant le gestionnaire webDriver comme expliqué ci-dessous - 1. Ajoutez une dépendance Mvn à votre projet POM:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Maintenant dans votre classe d'instanciation de navigateur au lieu d'utiliser la méthode traditionnelle pour créer le pilote, c'est-à-dire en utilisant System.setProperty (voir ci-dessous) ...

    System.setProperty ("webdriver.chrome.driver", "src / test / resources / drivers / chromedriver.exe");

Utilisez l'approche ci-dessous:

WebDriverManager.chromedriver (). Setup ();
webDriver = nouveau ChromeDriver (chromeOptions);

Et c'est tout, vous avez terminé!

Utilisez les liens ci-dessous pour votre référence - Qu'est-ce que Browser Binary Manager comment l'utiliser pour Selenium

ou chkout git project pour le même- https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency

Satyendra Sharma
la source
3
Cela a fonctionné pour moi - les téléchargements pour la version 2.37 peuvent être trouvés ici: chromedriver.storage.googleapis.com/index.html?path=2.37
Reily Bourne
Ouais et maintenant le dernier est - ChromeDriver 2.38 - chromedriver.chromium.org/downloads
Satyendra Sharma
10

Besoin de mettre à jour chromedriver: dans la console, exécutez: chromedriver-update 2.36

Olga
la source
9

L'erreur dit tout:

System.InvalidOperationException : unknown error: call function result missing 'value'
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.33.506120

L'erreur se plaint clairement d' InvalidOperationException

Votre principal problème est la compatibilité des versions entre les binaires que vous utilisez comme suit:

Prend en charge Chrome v60-62

Prend en charge Chrome v64-66

  • La version de votre client Selenium nous est inconnue.

Donc , il y a un décalage évident entre la ChromeDriver la version ( v2.33 ) et le navigateur Chrome Version ( v65.0 )

Solution

  • Mettez à niveau Selenium vers les niveaux actuels de la version 3.11.0 .
  • Mettez à niveau ChromeDriver vers le niveau ChromeDriver v2.37 .
  • Gardez Chrome la version entre Chrome v64.x-66.x niveaux. ( selon les notes de version de ChromeDriver v2.37 )
  • Nettoyez votre espace de travail de projet via votre IDE et reconstruisez votre projet avec les dépendances requises uniquement.
  • Utilisez l' outil CCleaner pour effacer toutes les tâches du système d'exploitation avant et après l'exécution de votre suite de tests .
  • Si la version de base de votre navigateur Web / client Web est trop ancienne, désinstallez-la via Revo Uninstaller et installez une version GA récente et une version publiée du navigateur Web / client Web .
  • Exécutez votre @Test.
DebanjanB
la source
5

Si vous êtes sur Mac:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

si les deux ci-dessus ne sont pas installés:

brew install selenium-server-standalone
brew install chromedriver
Sandeep Shabd
la source
3

J'utilise Protractor et j'ai rencontré le même problème.

La solution dans mon cas était plutôt simple.

$ npm update protractor -g

$ webdriver-manager update

catch22
la source
Si vous utilisez un gulp-protractorplugin, assurez-vous de le mettre à jour également.
Ilya Vinogradov
2

Si vous utilisez la dernière version stable de Google Chrome (par exemple 67), je vous recommande de:

brew uninstall chromedriver
brew tap homebrew/cask
brew cask install chromedriver

Cet ensemble de commandes désinstallera votre chromedriver actuel, vérifiera les mises à jour et installera les dernières découvertes (par exemple 2.40).

S. Esteves
la source
Heureux que cela ait aidé!
S.Esteves
1
Use xpaths instead of class names to locate elements

Après avoir mis à jour Chrome et ses pilotes, cela ne m'a pas du tout aidé !! Je ne sais pas à quel point cela a du sens, mais cela a fonctionné pour moi lorsque j'ai remplacé le nom de la classe par xpath. C'est le xpath, que j'ai utilisé pour automatiser l'envoi de messages WhatsApp en utilisant python.

driver.find_element_by_xpath('//*[@id="main"]/footer/div[1]/div[2]/div')

auparavant j'utilisais

driver.find_element_by_class_name('Some class Name Here')
Soyez Champzz
la source
0

Dans mon cas, l'équipe où je suis sur les points sélénium à un fichier chromedriver spécifique que nous avions. Afin que Selenium utilise le chromedriver mis à jour, je l'ai d'abord installé avec Brew, puis j'ai créé un lien symbolique vers le point où Selenium le recherche:

brew install chromedriver
ln -s /usr/local/Cellar/chromedriver/2.36/bin/chromedriver /path/where/selenium/expects/chromedriver
Chris
la source
0

Au cas où cela pourrait être utile à quelqu'un, j'avais besoin d'une étape supplémentaire:

Je suis sous MacOS X. Je l'ai fait

brew upgrade chromedriver
bundle exec chromedriver-upgrade

J'ai installé le gem chromedriver-helper, mais il est caché et nécessite le préfixe "bundle exec" ou le shell ne trouve pas la commande.

Ce qui précède a résolu mon problème.

Gischer
la source
0

Comme mentionné par d'autres, le dernier chromedriver a fait l'affaire pour moi. Si vous avez téléchargé le pilote manuellement et que vous souhaitez dire à appium d'utiliser le nouveau chromedriver, vous pouvez le faire avec cette commande:

appium --chromedriver-executable /path/to/driver/chromedriver ....

Mark Duivesteijn
la source
0

J'exécute Protractor (webdriver-manager) avec Selenium dans un environnement Windows, et j'ai dû faire ce qui suit:

  1. webdriver-manager update --versions.chrome="2.36" (Cela a téléchargé le nouveau Chromedriver sur le bon chemin mais ne l'a pas activé dans le rapporteur.)
  2. Modifiez %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsonet changez la chromedrivervaleur de 2.32à 2.36.
  3. Supprimez mon ancien chromedriver_2.32.exede %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumpour faire bonne mesure ( je ne sais pas si cela était nécessaire.)

Ou:

Lorsqu'une autre mise à jour de Chromedriver est devenue nécessaire, je ne pouvais plus mettre à jour de cette façon. Un paramètre de configuration attendait toujours l'ancien chemin et le nom de fichier, et je ne pouvais pas savoir où modifier ce paramètre. Je viens donc de renommer le dernier chromedriver en "chromedriver.exe" et de le coller dans C: \ Windows \ system32 (qui est toujours référencé par PATH). Brut, mais efficace.

Jordan Rieger
la source
0

Si vous utilisez un gulp-protractorplugin, assurez-vous de le mettre à jour également.

Ilya Vinogradov
la source
0

Je ne sais pas si vous êtes toujours là-dessus, mais je recevais une erreur similaire. J'avais la dernière version de chromedriver dans mon PATH et Google Chrome a été mis à jour. Je lance Python 3.6 sur Windows 10 x64 bits. Ce que j'obtenais en essayant de sélectionner une valeur dans un menu déroulant sur une page Web. La chose étrange était que cela sélectionnerait correctement la valeur de la liste déroulante et que la page serait mise à jour correctement, mais je recevrais quand même cette erreur stupide et mon script se figerait. Je viens donc de créer un gestionnaire d'erreur d'exception pour cela, car comme je l'ai dit, il a sélectionné correctement la valeur de la liste déroulante, donc je voulais juste contourner ce message d'erreur stupide:

# select by value
try:
    select.select_by_value('100')
except:
    pass

j'espère que quelqu'un trouvera cela utile.

Matt Wilson
la source
0

Le problème est dû à une incompatibilité entre la version de chromedriver et de navigateur Chrome. Le lien ci-dessous spécifie les versions de chromedriver prenant en charge la version du navigateur Chrome.

http://chromedriver.chromium.org/downloads

Chetan G. Bendre
la source