error desconocido: el resultado de la función de llamada falta el 'valor' para las claves de envío de selenio incluso después de la actualización de chromedriver

110

Recibo el siguiente error al enviar claves.

Mensaje de resultado:

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)

He actualizado el controlador de Chrome a 2.36, pero mi código sigue buscando 2.33.

Alguna idea ?

Zaki Ahmed
fuente
El mismo problema aquí desde ayer. En mi caso, creo que el problema es una combinación de chrome v65 + selenium driver v2.34 sin cabeza (el registro de cambios dice que es compatible con chrome v61-63)
Jorge Arévalo

Respuestas:

115

Recibí el mismo error, descargue la última versión de ChromeDriver y / o actualice la versión del navegador Chrome y funcionará bien :)

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

Descifrador
fuente
1
Lo descargué y me referí como Nuget y eliminé todas las referencias a 2.33, pero ¿aún se conecta al antiguo 2.33?
Zaki Ahmed
2
Descargué el chromedriver 2.36 más nuevo y todavía no funciona con la versión 65.0.3325.146 de Chrome (compilación oficial) (64 bits) Al menos en Mac OS :(
neliCZka
2
Oh, se disculpa, de hecho configuré mal mi ruta y, después de vincularla al nuevo controlador cromado, mi script funciona ahora. Por cierto, estoy usando una máquina con Windows.
Cliff Chew
6
Si está utilizando github.com/flavorjones/chromedriver-helper gem, ejecútelo en la consolachromedriver-update 2.36
Bachet
4
Si usa Homebrew, puede ejecutarbrew upgrade chromedriver
Diego Carrion
23


Después de actualizar el navegador Google Chrome a la versión 65.0.3325.146 (compilación oficial) (64 bits) , también me encuentro con el mismo error al enviar valores al campo de entrada, aquí está el mensaje de error ...

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

usando Chromedriver 2.32 y Google Chrome 65.0

Mientras investigaba un poco sobre el mismo, encontré una confirmación reciente en los registros de cambios de Google Chrome v65 que me ayudan a resolver el problema.

Solución:

  • Actualice Google Chrome a la última versión estable (en mi caso, es v65 el 9 / mar / 2018)
  • Descargue y configure la última versión de chromedriver (v2.36). Para configurar chromedriver (en Ubuntu) siga estos pasos ...

    1. Extraiga el archivo zip descargado.
    2. Copie el archivo chromedriver extraído en / usr / local / bin o en la ubicación donde normalmente almacena los binarios ejecutables.
    3. Agregue la misma ruta (donde coloca el archivo chromedriver) a la variable de entorno PATH como

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

  1. Para probar la instalación, reinicie el terminal y escriba este comando

cromedriver --versión

mostraría la versión de chromedriver que acaba de instalar.

Nota: Si el chromedriver ya está instalado y configurado, simplemente reemplace el archivo del controlador existente y si no sabe dónde ya están almacenados los binarios de Chromedriver, intente encontrar el archivo usando el siguiente comando

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

Es debido a la actualización de la versión del navegador Chrome de 64.xx a 65.xx

Ahora tiene 2 opciones para ejecutar sus pruebas con éxito.

  1. Cambie su navegador Chrome a la versión anterior y con el controlador cromado antiguo que tiene ahora.

  2. Actualice su Chromedriver a la versión 2.36 con el navegador Chrome actualizado.

    visite https://chromedriver.storage.googleapis.com/index.html?path=2.36 y descargue el nuevo chromedriver.

La opción 2 es mejor.

Deepak N
fuente
Estoy en el siguiente entorno: Ubuntu 16.04, GoogleChrome 65.0.3325.146, ChromeDriver 2.36.540471. Y sigo recibiendo el error exacto anterior. ¿Qué necesito cambiar? El error, sin embargo, dice que estoy usando la versión 2.33.506092 de chromedriver ...
Armin
Debe mencionar la ruta exacta del último controlador cromado que ha actualizado, no uno antiguo. o Reemplace el controlador cromado viejo por uno nuevo. Solo compruébalo.
Deepak N
Si alguien encuentra este error en Visual Studio, actualice al paquete Nuget del controlador web de Chrome a 2.37 (en el momento de escribir este artículo) resolverá este error.
Gunarathinam
12

Reemplace su ChromeDriver.exe con la última versión .. Lo mismo se puede descargar de Google fácilmente.

También es mejor hacerlo automáticamente usando el administrador webDriver como se explica a continuación: 1. Agregue la dependencia Mvn a su proyecto POM:

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>${webdrivermanager.version}</version>
    <scope>test</scope>
</dependency>
  1. Ahora en la clase de creación de instancias de su navegador en lugar de usar la forma tradicional de crear el controlador, es decir, usando System.setProperty (ver abajo) ...

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

Utilice el siguiente enfoque:

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

Y eso es todo, ¡has terminado!

Use los enlaces a continuación para su referencia: ¿Qué es el Administrador de binarios del navegador?

o proyecto chkout git para el mismo https://github.com/bonigarcia/webdrivermanager#webdrivermanager-as-java-dependency

Satyendra Sharma
fuente
3
Esto funcionó para mí: las descargas para 2.37 se pueden encontrar aquí: chromedriver.storage.googleapis.com/index.html?path=2.37
Reily Bourne
Sí, y ahora el último es ChromeDriver 2.38, chromedriver.chromium.org/downloads
Satyendra Sharma,
10

Necesita actualizar chromedriver: en la consola, ejecute: chromedriver-update 2.36

Olga
fuente
9

El error lo dice todo:

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

El error claramente se queja de InvalidOperationException

Su problema principal es la compatibilidad de versiones entre los binarios que está utilizando de la siguiente manera:

Soporta Chrome v60-62

Soporta Chrome v64-66

  • No conocemos su versión de Selenium Client .

Así que hay una clara falta de coincidencia entre la ChromeDriver versión ( v2.33 ) y el navegador Chrome versión ( v65.0 )

Solución

  • Actualice Selenium a los niveles actuales Versión 3.11.0 .
  • Actualice ChromeDriver al nivel ChromeDriver v2.37 .
  • Mantenga Chrome versión en el medio Chrome v64.x-66.x niveles. ( según las notas de la versión de ChromeDriver v2.37 )
  • Limpie su espacio de trabajo del proyecto a través de su IDE y reconstruya su proyecto solo con las dependencias requeridas.
  • Utilice la herramienta CCleaner para eliminar todas las tareas del sistema operativo antes y después de la ejecución de su suite de prueba .
  • Si su versión base de Web Browser / Web Client es demasiado antigua, desinstálela mediante Revo Uninstaller e instale una versión GA reciente y publicada de Web Browser / Web Client .
  • Ejecute su @Test.
DebanjanB
fuente
5

Si está en Mac:

brew upgrade selenium-server-standalone
brew upgrade chromedriver

si los dos anteriores no están instalados:

brew install selenium-server-standalone
brew install chromedriver
Sandeep Shabd
fuente
3

Estoy ejecutando Transportador y he encontrado el mismo problema.

La solución en mi caso fue bastante simple.

$ npm update protractor -g

$ webdriver-manager update

22 capturas
fuente
Si está utilizando un gulp-protractorcomplemento, asegúrese de actualizarlo también.
Ilya Vinogradov
2

Si está en el último Google Chrome estable (por ejemplo, 67), le recomiendo:

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

Este conjunto de comandos desinstalará su cromedriver actual, buscará actualizaciones e instalará el último encontrado (por ejemplo, 2.40).

S. Esteves
fuente
¡Me alegro de que haya ayudado!
S. Esteves
1
Use xpaths instead of class names to locate elements

Después de actualizar Chrome y sus controladores, ¡no me ayudó en absoluto! No sé cuánto tiene sentido, pero funcionó para mí cuando reemplacé el nombre de la clase con xpath. Este es el xpath, solía automatizar el envío de mensajes de whatsapp usando python.

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

anteriormente estaba usando

driver.find_element_by_class_name('Some class Name Here')
Ser Champzz
fuente
0

En mi caso, el equipo en el que estoy apunta el selenio a un archivo de cromedriver específico que teníamos. Para que Selenium use el controlador cromado actualizado, primero lo instalé con brew y luego creé un enlace simbólico para señalar dónde lo busca Selenium:

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

Si esto pudiera ser útil para alguien, necesitaba un paso adicional:

Estoy en MacOS X. Lo hice

brew upgrade chromedriver
bundle exec chromedriver-upgrade

Tengo instalada la gema chromedriver-helper, pero está guardada y requiere el prefijo "bundle exec" o el shell no puede encontrar el comando.

Lo anterior solucionó mi problema.

Gischer
fuente
0

Como han mencionado otros, el último cromado me sirvió. En caso de que haya descargado el controlador manualmente y quiera decirle a appium que use el nuevo controlador cromado, puede hacerlo con este comando:

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

Mark Duivesteijn
fuente
0

Estoy ejecutando Protractor (webdriver-manager) con Selenium en un entorno de Windows y tuve que hacer lo siguiente:

  1. webdriver-manager update --versions.chrome="2.36" (Esto descargó el nuevo Chromedriver en la ruta correcta pero no lo habilitó en el transportador).
  2. Edite %userprofile%\AppData\Roaming\npm\node_modules\protractor\config.jsony cambie el chromedrivervalor de 2.32a2.36 .
  3. Eliminar mi antiguo chromedriver_2.32.exede %userprofile%\AppData\Roaming\npm\node_modules\protractor\seleniumpor si acaso (no estoy seguro de si era necesario).

O:

Cuando se necesitó otra actualización de Chromedriver, ya no pude actualizar de esta manera. Una configuración de configuración todavía esperaba la ruta anterior y el nombre de archivo, y no pude averiguar dónde cambiar esa configuración. Así que simplemente renombré el último chromedriver a "chromedriver.exe" y lo pegué en C: \ Windows \ system32 (que siempre es referenciado por PATH). Crudo, pero efectivo.

Jordan Rieger
fuente
0

Si está utilizando un gulp-protractorcomplemento, asegúrese de actualizarlo también.

Ilya Vinogradov
fuente
0

No sé si todavía estás en esto, pero recibí un error similar. Tenía la última versión de chromedriver en mi PATH y se actualizó Google Chrome. Ejecuto Python 3.6 en Windows 10 x64 bit. Lo que obtenía al intentar seleccionar un valor de un menú desplegable en una página web. Lo extraño era que seleccionaría el valor desplegable correctamente y la página se actualizaría muy bien, pero recibiría ese estúpido error de todos modos y mi script se congelaría. Así que acabo de crear un controlador de errores de excepción, porque, como dije, seleccionó el valor desplegable correctamente, por lo que solo quería omitir ese mensaje de error tonto:

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

ojalá alguien lo encuentre útil.

Matt Wilson
fuente
0

El problema se debe a una falta de coincidencia en la versión del navegador Chrome y Chrome. El siguiente enlace especifica las versiones de chromedriver compatibles con la versión del navegador Chrome.

http://chromedriver.chromium.org/downloads

Chetan G. Bendre
fuente