Error del controlador de Chrome usando Selenium: No se pueden descubrir las páginas abiertas


Estoy recibiendo un error relacionado con el controlador de Chrome al ejecutar mis pruebas de Selenio. El mensaje de error es " No se pueden descubrir las páginas abiertas." Las pruebas de selenio estaban funcionando bien hasta anoche. El problema parecía comenzar después de un reinicio del servidor el día anterior. No puedo reproducir este error en mi casilla local. Ejecutar las pruebas de Selenium desde la línea de comandos en el servidor abre el navegador Chrome, pero resulta en el mismo error. Alguna idea?

Línea que es fallo:

chromeDriver = new OpenQA.Selenium.Chrome.ChromeDriver(externalDriverPath);

Mensaje de error y stacktrace:

No se pueden descubrir las páginas abiertas (Información del controlador: chromedriver=2.1, platform=Windows NT 6.1 SP1 x86_64) at OpenQA.Selenio.Remoto.RemoteWebDriver.Desempaquetar y Trowonerror (Respuesta ErrorResponse) at OpenQA.Selenio.Remoto.RemoteWebDriver.Ejecutar(String driverCommandToExecute, Diccionario`2 parámetros) en OpenQA.Selenio.Remoto.RemoteWebDriver.StartSession (ICapabilities Capacidades deseadas) en OpenQA.Selenio.Remoto.RemoteWebDriver..ctor (ICommandExecutor commandExecutor, ICapabilities DesiredCapabilities) at OpenQA.Selenio.Chrome.ChromeDriver..ctor (Cadena chromeDriverDirectory, ChromeOptions opciones) en OpenQA.Selenio.Chrome.ChromeDriver..ctor (Cadena chromeDriverDirectory) en SeleniumTests.Prueba básica.SetupBrowsers()

Al crear una instancia del ChromeDriver, aparece una ventana de consola. El servidor con el error parece referirse a cosas NO APLICADA.

ChomeDriver Salida Del Servidor con el Error:

Iniciado ChromeDriver (v2.1) en el puerto 2984 [4700:4292:0108/111503:ERROR:gpu_info_collector_win.cc(102)] No se puede recupere una evaluación de va lid WinSAT. [4700:4292:0108/111503:ERROR:chrome_views_delegate.cc(176)] NO APLICADO [4700:4292:0108/111503:ERROR: desktop_root_window_host_win. cc(746)] NOT IMPLEMENTAR ED [0108/111504: ERROR: gl_surface_egl. cc(132)] eglInitialize fallido con error UNKNOWN [0108/111504:ERROR: gl_surface_win.cc(97)] GLSurfaceEGL:: InitializeOneOff falló.

ChomeDriver Salida De Mi PC que funciona bien:

Iniciado ChromeDriver (v2.1) en el puerto 18786 [884540:883760:0108/114010:ERROR: gpu_info_collector_win. cc(102)] No se puede recupere una evaluación WinSAT válida. [884992:884996:0108/114010:ERROR:base_feature_provider.cc(122)] Manifestypes: Un contexto web_page siguiente requiere proporcionar un valor para coincidir. [885232:885236:0108/114011:ERROR:base_feature_provider.cc(122)] Manifestypes: Un contexto web_page siguiente requiere proporcionar un valor para cerillas. [884540:883760:0108/114011:ERROR:base_feature_provider.cc(122)] Manifestypes: Un contexto web_page siguiente requiere proporcionar un valor para cerillas. [0108/114011:ERROR:gl_surface_egl.cc(131)] eglInitialize falló con el error UNKNO WN [0108/114011:ERROR:gl_surface_win.cc(54)] GLSurfaceEGL:: InitializeOneOff falló.

Author: James Lawruk, 2014-01-08

6 answers

Está utilizando una altamente versión obsoleta del ChromeDriver. Su primer puerto de escala debería ser actualizarlo aquí.

Sospecho que el problema es que su Chrome en su servidor se ha actualizado, y ChromeDriver v2.1 no apoyo cualquier versión reciente de Chrome.

 24
Author: Arran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-25 21:53:56

Busque aquí otras posibles soluciones: https://groups.google.com/forum/?hl=en#! topic / selenium-users / gfvfH-YEC48

En mi caso, agregar el argumento sand no-sandbox a ChromeOptions resolvió el problema.

 6
Author: patty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-10 10:59:49

Aquí hay una solución rápida que encontré mientras investigaba para deshacerse de ese error: unknown error: unable to discover open pages

En el archivo de configuración del transportador, agregue lo siguiente:

 capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--no-sandbox']
    }   
},

La línea más importante es la --no-sandbox; agregar esa línea de alguna manera elimina ese error.

No estoy exactamente seguro de por qué funciona, pero es una solución que encontré mientras investigaba en línea.

***********************************ACTUALIZACIONES 10/04/2016***********************************

Por favor, ignore esta parte de arriba ya que esa solución no es una solución adecuada; a continuación le muestro la solución real a su problema; solo tiene un controlador de Chrome desactualizado y ejecutar "webdriver-manager update" solo se actualizará hasta v2.22, así que le mostraré cómo agarrar v2.24 a continuación.


Siga leyendo si su webdriver-manager update no actualiza chromedriver a la última v. e pasado v2. 22 O a v2. 24 a partir de 10/04/2016.

Perdí un par de semanas tirando de mi pelo alrededor de un problema que tenía con "Unable to discover open pages" y cada vez que iba a actualizar el chromedriver, se actualizaría a version 2.22 para chromedriver y creo que el servidor selenium a v2.53. Mi problema no era realmente con el servidor selenium por lo que v2. 53 estaba bien.

Issue was with chromedriver v2.22. 

Aunque este enlace chromdriver mostró que había una última versión de 2.24, 'webdriver-manager update' NO recogería esa última versión, solo tomaría la versión 2.22 de el controlador de Chrome.

¿Cómo pude evitar esto?

Simplemente ejecute el comando a continuación después de verificar este enlace para qué versión de chromedriver desea actualizar; por ejemplo, quería v2.24 así que ejecuté el comando a continuación:

Webdriver-manager update versions versions.cromo 2.24

Si comprueba su ubicación: C:\Users\<USER>\AppData\Roaming\npm\node_modules\webdriver-manager\selenium\

Debería ver que el chromedriver deseado se descargó allí; si no está allí, lea el símbolo del sistema registra y te dirá dónde descargó tus archivos chromdriver.

¡Espero que eso ayude a alguien!

 5
Author: pelican,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-04 15:38:12

Tuve el mismo problema, pero la actualización a la última ChromeDriver (v2.8) no lo resolvió para mí. Estaba ejecutando Selenium en un servidor CI (una máquina Dell que ejecuta Win 7 de 64 bits). Tengo la excepción cada vez que el servidor había estado inactivo por un tiempo.

Lo que solucionó el problema para mí fue establecer 'Apagar la pantalla después' en las opciones de energía de Windows' Nunca'.

 4
Author: Michael Herrmann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-30 09:58:18

Primero asegúrese de haber actualizado su navegador Chrome, a través de la interfaz de usuario del menú.

A continuación, actualizar ChromeDriver, aquí.

 0
Author: Peter Kogan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-20 16:08:38

Por alguna razón, el controlador de Chrome no puede interferir con el tráfico https si cambia su enlace a http, funcionará bien.

 0
Author: 0n10n_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-31 05:55:13