web-dev-qa-db-fra.com

erreur inconnue: valeur de la fonction d'appel manquante pour les clés d'envoi Selenium même après la mise à niveau de chromedriver

Je reçois 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 chromé à 2.36 mais ma recherche de code pour 2.33 est-elle toujours?

Une idée ?

101
Zaki Ahmed

J'ai la même erreur, veuillez télécharger la dernière version de ChromeDriver et/ou mettre à jour la version de Chrome Browser et tout fonctionnera correctement :)

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

112
Coder


Après la mise à jour du navigateur Google Chrome vers version 65.0.3325.146 (version officielle) (64 bits)}, la même erreur s'est produite. tout en envoyant des valeurs au champ de saisie, voici le message d'erreur ...

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

avec Chromedriver 2.32 et Google Chrome 65.0

Après avoir effectué quelques recherches sur le même sujet, j'ai trouvé un récent commit sur Google chrome changelogs v65 qui m'aide à résoudre le problème. 

Solution:

  • Mettez à jour Google Chrome avec la dernière version stable (dans mon cas, il s'agit de la v65 le 9 mars 2018).
  • Téléchargez et configurez la dernière version de chromedriver (v2.36) . Pour configurer chromedriver (sur Ubuntu), procédez comme suit ...

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

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

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

chromedriver --version

cela montrerait la version de chromedriver que vous venez d'installer.

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

 Sudo find -H / -type f -iname chromedriver
21
Emrit

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. Déclassez votre navigateur Chrome à la version précédente et à l'ancien pilote chromed 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 programme chromedriver.

L'option 2 est meilleure.

13
Deepak N

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

12
Satyendra Sharma

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

10
Olga

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 de InvalidOperationException

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

  • Vous utilisez chromedriver = 2.33 
  • Notes de publication de chromedriver = 2.33 mentionne clairement les éléments suivants:

Prend en charge Chrome v60-62

  • Vous utilisez chrome = 65.0
  • Notes de publication de ChromeDriver v2.37 mentionne clairement les éléments suivants:

Prend en charge Chrome v64-66

  • Votre version de Selenium Client nous est inconnue.

Il y a donc un décalage évident entre la version ChromeDriver (v2.33) et la version Chrome Browser (v65.0).

Solution

  • Mettez à niveau Selenium aux niveaux actuels Version 3.11.0 .
  • Mettez à niveau ChromeDriver vers ChromeDriver v2.37 level.
  • Conservez la version Chrome entre les niveaux Chrome v64.x-66.x. ( conformément aux notes de version de ChromeDriver v2.37 )
  • Nettoyer votre Espace de travail de projet par votre IDE et Reconstruire votre projet avec les dépendances requises uniquement.
  • Utilisez CCleaner tool pour effacer toutes les tâches du système d'exploitation avant et après l'exécution de votre test Suite.
  • Si votre version navigateur Web/client Web de base est trop ancienne, désinstallez-la à l'aide de Revo Uninstaller et installez une version récente GA et publiée de Navigateur Web./Client Web.
  • Exécutez votre @Test.
8
DebanjanB

Si vous êtes sur Mac:

brew upgrade Selenium-server-standalone
brew upgrade chromedriver

si les deux précédents ne sont pas installés:

brew install Selenium-server-standalone
brew install chromedriver
5
Sandeep Shabd

J'exécute 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

3
catch22

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

Ces jeux de commandes vont désinstaller votre chromedriver actuel, rechercher les mises à jour et installer la dernière version trouvée (par exemple, 2.40).

2
S. Esteves

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 indiquer à Appium d'utiliser le nouveau pilote chromedriver, vous pouvez le faire à l'aide de la commande suivante: 

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

0
Mark Duivesteijn

Si vous utilisez le plugin gulp-protractor, veillez également à le mettre à jour.

0
Ilya Vinogradov

Dans mon cas, l’équipe sur laquelle je me trouve pointe vers un fichier chromedriver spécifique que nous avions. Afin de permettre à Selenium d'utiliser le pilote chromed mis à jour, je l'ai d'abord installé avec brassage, puis créé un lien symbolique indiquant le point où Selenium le recherche:

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

Si cela pouvait être utile à quelqu'un, j'avais besoin d'une étape supplémentaire:

Je suis sur MacOS X. Je l'ai fait

brew upgrade chromedriver
bundle exec chromedriver-upgrade

J'ai installé la gem chromedriver-helper, mais elle est stockée et requiert le préfixe "bundle exec" ou le shell ne peut pas trouver la commande.

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

0
gischer

Le problème est dû à une discordance dans les versions de navigateur chromedriver et chrome . Le lien ci-dessous indique les versions de chromedriver prenant en charge la version du navigateur Chrome.

http://chromedriver.chromium.org/downloads

0
Chetan G. Bendre

J'utilise Protractor (webdriver-manager) avec Selenium dans un environnement Windows, et je devais effectuer les opérations suivantes:

  1. webdriver-manager update --versions.chrome="2.36" (Ceci a téléchargé le nouveau Chromedriver dans le bon chemin mais ne l'a pas activé dans le rapporteur.)
  2. Éditez %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.json et modifiez la valeur chromedriver de 2.32 à 2.36.
  3. Supprimez mon ancien chromedriver_2.32.exe de %userprofile%\AppData\Roaming\npm\node_modules\protractor\Selenium pour faire bonne mesure (ne savez pas si cela était nécessaire.)

Ou:

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

0
Jordan Rieger

Je ne sais pas si vous en êtes toujours à ce sujet, 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 x 64 bits. Ce que je devenais en train d'essayer de sélectionner une valeur dans un menu déroulant sur une page Web. Ce qui était bizarre, c’était que la valeur de la liste déroulante était sélectionnée correctement et que la page était mise à jour correctement, mais je recevais quand même cette erreur stupide et mon script se figeait. J'ai donc créé un gestionnaire d'erreur d'exception, car, comme je l'ai dit, la sélection de la valeur de liste déroulante a été effectuée correctement. Je voulais donc ignorer ce message d'erreur muet:

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

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

0
Matt Wilson