chromedriver chrome python-2.7 google-chrome selenium selenium-webdriver webdriver

python 2.7 - error desconocido: el resultado de la función de llamada falta ''valor'' para Selenium Send Keys incluso después de la actualización de chromedriver



selenium webdriver python (16)

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 aún así mi código busca 2.33?

Alguna idea ?


Como lo mencionaron otros, el último cromedriver hizo el truco por mí. 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 ....


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 se queja claramente de InvalidOperationException

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

Admite Chrome v60-62

Admite Chrome v64-66

  • Su versión de Selenium Client es desconocida para nosotros.

Por lo tanto, existe una clara falta de coincidencia entre la versión de ChromeDriver ( v2.33 ) y la versión del navegador Chrome ( v65.0 )

Solución

  • Actualice Selenium a los niveles actuales Versión 3.11.0 .
  • Actualice ChromeDriver al nivel ChromeDriver v2.37 .
  • Mantenga la versión de Chrome entre los niveles de Chrome v64.x-66.x . ( 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.
  • Use la herramienta CCleaner para borrar todas las tareas del sistema operativo antes y después de la ejecución de su conjunto de pruebas .
  • Si la versión básica de su navegador web / cliente web es demasiado antigua, desinstálela a través de Revo Uninstaller e instale una versión reciente de GA y lanzada del navegador web / cliente web .
  • Ejecute su @Test .

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

chromedriver.chromium.org/downloads


En caso de que esto pueda 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á oculta y requiere el prefijo "bundle exec" o el shell no puede encontrar el comando.

Lo anterior solucionó mi problema.


En mi caso, el equipo en el que estoy seleccionó puntos de 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


Estoy ejecutando Protractor (webdriver-manager) con Selenium en un entorno 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.json y cambió el valor de chromedriver de 2.32 a 2.36 .
  3. Elimine mi viejo chromedriver_2.32.exe de %userprofile%/AppData/Roaming/npm/node_modules/protractor/selenium por si acaso (no estoy seguro de si eso era necesario).

O:

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


Estoy ejecutando Protractor y he encontrado el mismo problema.

La solución en mi caso fue bastante simple.

$ npm update protractor -g

$ webdriver-manager update


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


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

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

Espero que alguien encuentre esto útil.




Se debe 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. Cambia tu navegador Chrome a la versión anterior y con el viejo controlador de cromo que tienes 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.


Si está utilizando el complemento gulp-protractor , asegúrese de actualizarlo también.


Si estás 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


Si tiene la última versión estable de Google Chrome (por ejemplo, 67), le recomiendo:

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

Este conjunto de comandos desinstalará su controlador cromado actual, buscará actualizaciones e instalará la última versión encontrada (por ejemplo, 2.40).



Después de actualizar el navegador Google Chrome a la versión 65.0.3325.146 (versió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 sobre el mismo, encontré una commit 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 el último chromedriver (v2.36). Para configurar chromedriver (en Ubuntu) siga estos pasos ...

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

RUTA de exportación = $ RUTA: / usr / local / bin

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

chromedriver --version

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 están almacenados los archivos binarios de Chromedriver, intente encontrar el archivo con el siguiente comando

sudo find -H / -type f -iname chromedriver