Estoy tratando de ejecutar RSelenium usando la función rsDriver, pero cuando ejecuto
rD <- rsDriver()
recibo un mensaje que me dice que necesito una versión más nueva 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.
El mensaje de error parece indicar que necesito la versión 74.0.3729.6 de Chrome, pero cuando miro en la configuración de Chrome, me dice que estoy ejecutando la última versión estable (73.0.3683.75). Después de buscar en Google, 74.0.3729.6 es una versión de desarrollo previa al lanzamiento de Chrome: ¿necesito instalar esto para usar ChromeDriver con RSelenium?
No estoy casado con la idea de usar Chrome, pero no he podido hacer que rsDriver use Firefox: cuando especifico browser = "firefox"
, rsDriver me da el mismo mensaje de error sobre ChromeDriver que no admite mi versión de Chrome.
La información de mi sesión es:
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
fuente
Respuestas:
Encontré el mismo problema hoy y encontré esta publicación y otras de Google. Creo que puedo tener una solución más directa como una modificación de su código. La respuesta anterior es correcta al identificar la falta de coincidencia en las versiones.
Probé las soluciones propuestas en vano. Descubrí que las versiones eran correctas en mi computadora. Sin embargo, este error de falta de coincidencia no fue el resultado de las versiones reales instaladas en la computadora, sino que el código RSelenium está buscando la versión "más reciente" de Chrome / ChromeDriver por argumento predeterminado. Vea la
?rsDriver()
página de ayuda para los argumentos.Si ejecuta el código
binman::list_versions("chromedriver")
como se especifica en la documentación de ayuda, puede identificar las versiones compatibles con la función. En mi caso, pude usar el siguiente código para establecer una conexión.driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68", extraCapabilities = eCaps)
Debería poder especificar su versión de Chrome con el
chromever=
argumento. Sin embargo, tuve que usar la versión más cercana (mi versión de Chrome era "73.0.3683.75").¡Espero que esto ayude!
fuente
available.versions<-binman::list_versions("chromedriver") latest.version = available.versions$win32[length(available.versions)]
Gracias por esto!Para MacOS, la actualización de chromedriver hizo el truco:
fuente
chromedriver-beta
, que esperaba una versión posterior de Chrome. Así que lo que hice:brew cask uninstall chromedriver-beta; brew cask install chromedriver
rm /usr/local/bin/chromedriver
y luegobrew cask install chromedriver
obtuve la última versión. En cualquier caso, la actualización fue la solución de chromedriver.Este mensaje de error ...
... implica que ChromeDriver espera que la versión del navegador Chrome sea 74 .
Instalación rápida del último ChromeDriver
Para instalar la última versión de ChromeDriver puede usar:
brew tap homebrew/cask && brew cask install chromedriver
sudo apt-get install chromium-chromedriver
choco install chromedriver
Análisis
Su principal problema es la incompatibilidad entre la versión de los binarios que está utilizando de la siguiente manera:
Por lo tanto, existe una clara falta de coincidencia entre ChromeDriver v74.0.3729.6 y Chrome Browser v73.0
Solución
@Test
.driver.quit()
dentro deltearDown(){}
método para cerrar y destruir las instancias de WebDriver y Web Client con gracia.Referencia
Puede encontrar una discusión detallada relevante en:
fuente
rD <- rsDriver()
, terminando en:[1] "Connecting to remote server" Could not open chrome browser. Client error message: Undefined error in httr call. httr output: Failed to connect to localhost port 4567: Connection refused Check server log for further details. Warning message: In rsDriver() : Could not determine server status.
Selenium
. Esta respuesta no se refiere aR
oRSelenium
en absoluto. Esta respuesta aceptada debería ser la de @CAD a continuación.La actualización de la versión de Google Chrome a 74 funcionó para mí.
Pasos: 1. Vaya a Ayuda -> Acerca de Google Chrome -> Chrome buscará actualizaciones automáticamente (actualice Chrome a la última versión)
fuente
Tuve que reinstalar el transportador para que extraiga el
webdriver-manager
módulo actualizado . Además, según el comentario de @ Mark,package-lock.json
puede estar bloqueando la dependencia.Luego, asegúrese de verificar el
maxChromedriver
valornode_modules/protractor/node_modules/webdriver-manager/config.json
después de la reinstalación para verificar que coincida con la versión deseada del controlador de Chrome.fuente
package-lock.json
estaba bloqueando la dependencia. No es un error, solo necesita actualizar las dependencias.Hoy me ocupé de este problema y la actualización de mi webdrivermanger lo resolvió por mí (mi versión anterior era 3.0.0):
fuente
Acabo de encontrar el mismo tipo de error usando
RSelenium::rsDriver()
lachromever = "latest"
configuración predeterminada que resultó en el intento fallido de combinarchromedriver 75.0.3770.8
con la última versióngoogle-chrome-stable 74.0.3729.157
:Dado que esto obviamente parece ser un problema recurrente y bastante molesto, se me ocurrió la siguiente solución para usar siempre la última versión compatible de ChromeDriver :
El código anterior solo se prueba en Linux y utiliza algunos paquetes tidyverse (instálelos de antemano o vuelva a escribirlos en la base R). Para otros sistemas operativos, es posible que deba adaptarlo un poco, particularmente reemplazarlo
command = "google-chrome-stable"
con el comando específico del sistema para iniciar Google Chrome:En macOS que debería ser suficiente para reemplazar
command = "google-chrome-stable"
concommand = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
.En Windows, un error específico de la plataforma nos impide llamar al binario de Google Chrome directamente para obtener su número de versión. En su lugar, haga lo siguiente:
Básicamente, el código solo garantiza que la última versión de ChromeDriver que coincida con el número de versión de parche mayor-menor del navegador estable de Google Chrome del sistema se pase como
chromever
argumento. Este procedimiento debe cumplir con el esquema de versiones oficial de ChromeDriver . Citar:fuente
Realmente estaba luchando con esta falta de coincidencia entre ChromeDriver v74.0.3729.6 y el navegador Chrome v73.0. Finalmente encontré una manera de llevar ChromeDriver a una versión anterior,
En Chrome> Acerca de Google Chrome, copie el número de versión, excepto el último grupo. Por ejemplo, 72.0.3626.
Pegue esa versión al final de esta url y visítela. Volverá con una versión, que debes copiar. https://chromedriver.storage.googleapis.com/LATEST_RELEASE_
De vuelta en la línea de comando, ejecute
bundle exec chromedriver-update <copied version>
fuente
Travis CI
Tuve el mismo problema en Travis y lo resolví agregando:
a mi
.travis.yml
archivofuente
Travis CI alternativa
Otra respuesta ya que Francesco Borzi no funcionó para mí.
Agregue esto a su travis.yml:
Muchas gracias y crédito a tagliala en github:
https://github.com/diowa/ruby2-rails5-bootstrap-heroku/commit/6ba95f33f922895090d3fabc140816db67b09672
fuente
Esta solución me funcionó
driver <- rsDriver(browser=c("chrome"), chromever="73.0.3683.68")
fuente
Ya no es necesario degradar Chrome, cuando obtienes este error solo significa que es hora de
webdriver-manager update
volver a ejecutarsefuente
Encontré este problema y pude resolverlo en 2 pasos principales:
1 - Actualización al último chromedriver a través de homebrew cli
2 - actualizar a la última versión a través de la GUI de Chrome
chrome: // settings / help o
cmd
+,
luego añadiendo ayuda al final (tu eliges)desde allí, debe aterrizar en la página Acerca de Chrome. Aquí deberá verificar que está en la última y mejor versión (el problema con el que me encontraba se derivaba de una falta de coincidencia en el cli frente a la versión actual de Chrome)
Si obtiene el error, verá un
update & relaunch
botón de acción principal.después de "relanzar" Chrome, ahora tendrá la versión más nueva que coincida con tu cli
ejemplo:
fuente
solo ve a esta url en el navegador Chrome
y Chrome buscará actualizaciones automáticamente (actualiza Chrome a la última versión)
terminar :)
fuente
Obtuve el mismo error cuando estoy usando el marco de robot (marco basado en Selenium) en una instancia de Docker . La razón fue que Docker estaba usando el caché
google-chrome-stable_current_amd64.deb
para Chrome, pero ha instalado el último controlador de Chrome, que era una versión posterior.Luego utilicé el siguiente comando y el error se resolvió.
Espero que esto ayude a alguien.
fuente
Estaba enfrentando el mismo error:
Estamos ejecutando las pruebas desde una computadora que no tiene una interfaz de usuario real, por lo que tuve que trabajar a través de una línea de comando (CLI).
Comencé detectando la versión actual de Chrome que estaba instalada en la computadora Linux:
Y obtuve esta respuesta:
Entonces actualicé la versión de Chrome así:
Y después de verificar nuevamente la versión, obtuve esto:
Luego, las pruebas de selenio pudieron funcionar sin problemas.
fuente
Solo actualiza el transportador:
npm install protractor @ latest --save-dev
fuente
Puede especificar la versión exacta de su instalación de Chrome de esta manera:
webdriver-manager update --versions.chrome 73.0.3683.75
Tal vez necesite hacer una
webdriver-manager clean
primera en el caso de una rebaja.fuente
Descargué un archivo zip de https://chromedriver.chromium.org/downloads. Dice "Si está usando Chrome versión 79, descargue ChromeDriver 79.0.3945.36" y estaba usando Chrome versión 79. (Lo comprobé
chrome://settings/help
) Aparentemente, el el error para mí fue "Esta versión de ChromeDriver solo es compatible con la versión 78 de Chrome"Y luego hice clic en el archivo zip y moví ese archivo "chromedriver" al
/usr/local/bin/
directorio. Eso resolvió el problema.fuente
Es útil para la gente de Linux. Mi problema era trivial, utilicé el navegador de cromo. Instalé Chrome y se resolvieron todos los problemas. Podría funcionar con cromo pero con acciones adicionales. No recibí un éxito. Podría establecer una versión de controlador necesaria para la configuración del transportador. Usó lo último. Necesitaba una rebaja.
fuente
Tengo casi los mismos problemas como este, los problemas vienen dentro de la tubería cuando ejecuto mi prueba de selenio que necesita el paquete chromedriver para ejecutar la prueba e2e.
Mi canal de compilación de error
El problema es solo porque en la tubería (en mi caso) está teniendo la versión 73 de Chrome, y mi paquete chromedriver está instalado en la versión 74.
fuente
Usando Visual Studio
No pude resolver el desajuste de la versión siguiendo cualquiera de las respuestas al usar Visual Studio, pero simplemente actualizando los paquetes nuget Selenium.WebDriver y Selenium.WebDriver.ChromeDriver a las últimas versiones trabajadas.
Estaba usando Chrome v78, y la actualización de chromedriver a v78 todavía dio el error de incompatibilidad. La respuesta de CAD me llevó a la solución.
fuente
Hoy me pasó el mismo problema.
Mi solución:
Descargue la última versión estable de chromedriver: https://sites.google.com/a/chromium.org/chromedriver/
Actualice el controlador de Chrome en su carpeta Selenium. Esto es un poco difícil, porque está en una carpeta oculta en su PC llamada AppData. Así es como lo hice en mi computadora (Windows 7):
C:> usuarios> su usuario> \ AppData (debe escribir esto en el cuadro de ruta de la carpeta, ya que es una carpeta oculta)> Local (este es el nombre de la carpeta en portugués, tal vez tendrá un nombre diferente para usted) > SelenioBásico
Allí encontrarás la aplicación chromedriver. Simplemente cámbiele el nombre (en caso de que no funcione, desea tener la versión anterior) y luego pegue la versión más reciente.
fuente
Tuve el mismo problema recientemente. Este fue mi error:
Esta solución funcionó para mí:
[project_folder]\bin\Debug\netcoreapp2.1
)fuente
Asegúrese de tener la última versión de webdriver-manager. Puedes instalar lo mismo usando
npm i webdriver-manager@latest --save
Luego ejecuta lo siguiente
fuente
Tuve el mismo problema y lo resolví simplemente descargando un
chromedriver
archivo para una versión anterior de Chrome. Descubrí que la versión 79 de Chrome es compatible con la versión actual de Selenium.Luego lo guardé en una ruta específica y vinculé esa ruta a mi
webdriver
.Los pasos exactos se especifican en este enlace: http://chromedriver.chromium.org/downloads
fuente
Tuve un problema similar, solo actualicé el administrador de webdriver en mac, use esto en la terminal para actualizar el administrador de webdriver-
fuente
Para descargar la versión de Google Chrome, visite el sitio chromedriver.chromium.org
fuente
Verifiqué la versión de mi navegador Google Chrome instalado en mi PC y luego descargué
ChromeDriver
la versión adecuada para mi navegador. Puede descargarlo desde https://chromedriver.chromium.org/fuente