Estoy tratando de iniciar Chrome con una URL, el navegador se inicia y no hace nada después de eso.
Veo el siguiente error después de 1 minuto:
Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
(Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)
Mi configuracion:
- Cromo: 66
- ChromeBrowser: 2.39.56
PD: todo funciona bien en Firefox
google-chrome
selenium
selenium-webdriver
webdriver
selenium-chromedriver
Kumar Sampath
fuente
fuente
Respuestas:
Este mensaje de error ...
... implica que ChromeDriver no pudo iniciar / generar un nuevo WebBrowser, es decir, la sesión del navegador Chrome .
Sus pruebas de código y la información de versiones de todos los binarios nos habrían dado alguna pista sobre lo que está mal.
Sin embargo, según Add --disable-dev-shm-use a las banderas de inicio predeterminadas, parece que agregar el argumento
--disable-dev-shm-usage
resolverá temporalmente el problema.Si desea iniciar / abarcar una nueva sesión del navegador Chrome , puede usar la siguiente solución:
disable-dev-shm-use
Según base_switches.cc
disable-dev-shm-usage
parece ser válido solo en el sistema operativo Linux :En la discusión Agregue una opción para usar / tmp en lugar de / dev / shm David menciona:
Outro
Aquí está el enlace a la historia de Sandbox .
fuente
DevToolsActivePort file doesn't exist
y por qué de repente comenzó a aparecer?disable-dev-shm-usage
no fue suficiente. También tuve que agregar--no-sandbox
para que funcione. Esta fue la solución completa para Selenium-java:chromeOptions.addArguments("--no-sandbox", "--disable-dev-shm-usage");
Comencé a ver este problema el lunes 2018-06-04. Nuestras pruebas se ejecutan cada día de la semana. Parece que lo único que cambió fue la versión de google-chrome (que se había actualizado a la actual) JVM y Selenium eran versiones recientes en Linux box (Java 1.8.0_151, selenium 3.12.0, google-chrome 67.0.3396.62 y xvfb-run).
Específicamente, agregar los argumentos " --no-sandbox " y " --disable-dev-shm-use " detuvo el error. Examinaré estos problemas para encontrar más información sobre el efecto y otras preguntas sobre qué provocó la actualización de google-chrome.
fuente
[java] [1536892035.965][SEVERE]: Timed out receiving message from renderer: 60.000
errores incluso con estoEstábamos teniendo los mismos problemas con nuestros esclavos jenkins (máquina Linux) y probamos todas las opciones anteriores.
Lo único que ayudó es establecer el argumento
Pero cuando investigamos más, notamos que la pantalla XVFB no inició la propiedad y eso está causando este error. Después de arreglar la pantalla XVFB, resolvió el problema.
fuente
Tuve el mismo problema en Python. Lo anterior ayudó. Esto es lo que usé en Python:
fuente
Actualizar:
Puedo superar el problema y ahora puedo acceder a Chrome con la URL deseada.
Resultados de probar las soluciones proporcionadas:
Intenté todas las configuraciones como se indica arriba pero no pude resolver el problema
Explicación sobre el tema:
Según mi observación, el archivo DevToolsActivePort no existe se produce cuando Chrome no puede encontrar su referencia en la carpeta scoped_dirXXXXX.
Pasos para resolver el problema.
Se agregó el siguiente código para invocar el cromo
Utilizando los pasos anteriores pude resolver el problema.
Gracias por tus respuestas.
fuente
Estaba enfrentando el mismo problema recientemente y después de algunas pruebas y errores también funcionó para mí.
DEBE ESTAR EN LA PARTE SUPERIOR:
BaseSeleniumTests.java
GoogleSearchPageTraditionalSeleniumTests.java
pom.xml
fuente
En mi caso en el siguiente entorno:
3.7.5
C:\Windows
3.141.0
Necesitaba agregar los argumentos
--no-sandbox
y--remote-debugging-port=9222
alChromeOptions
objeto y ejecutar el código como usuario administrador almorzando el Powershell / cmd como administrador.Aquí está el fragmento de código relacionado:
fuente
Me encontré con este problema en Ubuntu 20 con Python Selenium después de descargar primero el controlador de cromo por separado y luego usarlo,
sudo apt install chromium-browser
aunque eran la misma versión, esto seguía sucediendo.Mi solución fue usar el controlador Chrome provisto que viene con el paquete de repositorio ubicado en
fuente
Como se indica en esta otra respuesta :
Entre las posibles causas, me gustaría mencionar el hecho de que, en caso de que esté ejecutando un cromo sin cabeza a través de Xvfb, es posible que necesite
export
laDISPLAY
variable: en mi caso, tenía en su lugar (como se recomienda) las opciones--disable-dev-shm-usage
y--no-sandbox
, todo fue funciona bien, pero en una nueva instalación que ejecuta la última versión (al momento de escribir) Ubuntu 18.04, este error comenzó a ocurrir, y la única solución posible era ejecutar unexport DISPLAY=":20"
(habiendo iniciado Xvfb previamente conXvfb :20&
).fuente
También me enfrenté a este problema al integrarme con el servidor jenkins, fui utilizado como usuario raíz para el trabajo de jenkin, el problema se solucionó cuando cambié el usuario a otro usuario . No estoy seguro de por qué se produce este error para el usuario root.
fuente
En mi caso, sucedió cuando intenté usar mi perfil de usuario predeterminado:
Esto provocó que Chrome reutilizara los procesos que ya se estaban ejecutando en segundo plano, de tal manera que el proceso iniciado por chromedriver.exe simplemente finalizó.
Resolución: elimine todos los procesos de chrome.exe que se ejecutan en segundo plano.
fuente
capacidades de actualización en conf.js como
fuente
En mi caso, estaba tratando de crear un jar ejecutable en el sistema operativo Windows con el navegador Chrome y quiero ejecutar lo mismo en modo sin cabeza en unix box con CentOs en él. Y estaba apuntando mi binario a un controlador que descargué y empaqué con mi suite. Para mí, este problema continúa ocurriendo independientemente de agregar lo siguiente:
La solución que probé y trabajé para mí es descargar el Chrome y sus herramientas en la caja VM / Unix del host, instalar y apuntar el binario a esto en la suite de automatización y bingo Funciona :)
Comando de descarga:
Instalar comando:
Paquete de actualizaciones con la siguiente ruta binaria de google-chrome:
¡Y funciona!
fuente
Tuve el mismo problema, pero en mi caso, Chrome se instaló previamente en la carpeta temporal del usuario, luego se reinstaló en los archivos de programa. Entonces, ninguna de las soluciones proporcionadas aquí no me ayudó. Pero si proporciona la ruta a chrome.exe, todo funciona:
Espero que esto ayude a alguien =)
fuente
Ninguna solución funcionó para mi. Pero aquí hay una solución alternativa:
fuente
Puede obtener este error simplemente por pasar argumentos malos a Chrome. Por ejemplo, si paso
"headless"
como argumento al C # ChromeDriver, se dispara muy bien. Si cometo un error y uso la sintaxis incorrecta"--headless"
, obtengo elDevToolsActivePort file doesn't exist
error.fuente
Me encontré con el mismo problema, estoy usando el navegador UBUNTU, PYTHON y OPERA . en mi caso el problema se originó porque tenía una versión desactualizada de operadriver.
Solución: 1. Asegúrese de instalar la última versión del navegador Opera (no use Opera Beta o Opera Developer), para eso vaya al sitio oficial de Opera y descargue desde allí la última versión opera_stable.
wget https://github.com/operasoftware/operachromiumdriver/releases/download/v.80.0.3987.100/operadriver_linux64.zip
en mi caso el último fue 80.0.3987 como puedes ver
Además, también instalé chromedriver (pero como lo hice antes de las pruebas, no sé si es necesario) para instalar chromedriver, siga los pasos del paso anterior: v
Disfruta y gracias!
Código de selenio de muestra
fuente
Parece que hay muchas causas posibles para este error. En nuestro caso, el error ocurrió porque teníamos las siguientes dos líneas en el código:
Se resuelve eliminando la segunda línea.
fuente
Me encontré con el mismo problema al ejecutar Chrome a través de Behat / Mink y Selenium en un contenedor Docker. Después de tocar un poco, llegué a lo siguiente
behat.yml
que suministra los interruptores mencionados anteriormente. Tenga en cuenta que todos ellos fueron necesarios para que pueda funcionar correctamente.fuente
En mi caso, estoy en un entorno de Kubernetes donde no puedo usar el TMPDIR predeterminado porque llenará el directorio temporal con basura.
Entonces estaba usando esto para usar un tmpdir diferente:
Pero ahora que he actualizado todo a lo último, esto ya no parece funcionar. Necesitaré encontrar una nueva forma de hacer esto.
fuente
Ocurre cuando chromedriver no puede averiguar qué puerto de depuración está utilizando Chrome.
Una posible causa es un defecto abierto con HKEY_CURRENT_USER \ Software \ Policies \ Google \ Chrome \ UserDataDir
Pero en mi último caso, fue otra causa no identificada.
Afortunadamente, configurar el número de puerto funcionó manualmente:
fuente
Número de puerto incorrecto en mi caso. Compruebe si el número de puerto al iniciar el servidor Selenium es el mismo que en su secuencia de comandos.
fuente
Resuelvo este problema instalando
yum -y install gtk3-devel gtk3-devel-docs
", funciona bienMi trabajo env es:
Antes de:
Después:
fuente
Como este es el mensaje más activo para este tipo de error, quería mencionar mi solución (después de pasar horas para solucionarlo).
En Ubuntu 18.04, usando Chrome 70 y Chromedriver 2.44, y Python3 seguí recibiendo el mismo error DevToolsActivePort, incluso cuando desactivé todas las opciones enumeradas anteriormente. El archivo de registro de chromedriver y ps mostraron que el chromedriver que configuré en chrome_options.binary_location se estaba ejecutando, pero siempre daba un error DevToolsActivePort. Cuando eliminé chrome_options.binary_location = '....' y lo agregué a la creación del controlador web, lo hice funcionar bien. webdriver.Chrome ('/ ruta a ... / chromedriver', chrome_options = chrome_options)
Gracias a todos por sus comentarios que me hacen entender y resolver el problema.
fuente