Error de selenium - Python

Iniciado por painpills, 17 Junio 2021, 11:22 AM

0 Miembros y 1 Visitante están viendo este tema.

painpills

"Unknow error unable to discover open pages"

Es ese el error que me aparece en consola luego de ejecutar mi programa.

Hace unos días que quise empezar a hacer ejercicios de web scraping con python y selenium porque por lo que leí es la opción más completa y fácil de aprender pero lo único que he conseguido es que se abra una ventana de Google Chrome, luego de eso se cierra y aparece el error en consola sin haber accedido a la url que le indico.

https://ibb.co/p4BKkCF (dejo aquí un link hacia la imagen de lo que aparece en consola, no sé bien si hay otra forma de insertar imágenes aquí)

Me aseguré que la versión de webdrive que descargué fuera la indicada para mi navegador intenté incluso con cosas que seguramente no tenían nada que ver con el problema, actualicé pip y reinstale selenium y nada.  :-\

https://ibb.co/y8F35XH (este es el código que escribí)

Xyzed

Hola, adjunto las imágenes para que puedan verlas directamente desde el foro:

Cita de: N0I$E en 17 Junio 2021, 11:22 AM
https://ibb.co/p4BKkCF (dejo aquí un link hacia la imagen de lo que aparece en consola, no sé bien si hay otra forma de insertar imágenes aquí)





Cita de: N0I$E en 17 Junio 2021, 11:22 AM
https://ibb.co/y8F35XH (este es el código que escribí)


Procura colocar las extensiones de las imágenes, además, en el foro existe una etiqueta bbcode para insertar las mismas:


[img]https://dominio.ej/ejemplo.png[/img]



Saludos.
...

Serapis

Muchos lenguajes utilizan el carácter '\' como un carácter de 'escape', cuando es así, y  el string contiene como parte del string ese mismo carácter, debe remplazarse por doble barra '\\' entonces al hacer el parsing del string se reconocen si forman pares contínuos como el propio carácter y 1 solo contínuo como el carácter de escape y podrá procesar el string correctamente.

Esa regla se aplica también a las cadenas que van entre comillas simples o dobles:
'casa's del monte' tendría que escribirse como 'casas''del monte'.
"caso del "monte"", tendría que escribirse como: "caso del ""monte""".

Hay que conocer al detalle la especificación del lenguaje para reconocer cuando se espera. Es frecuente que aún cuando un lenguaje no lo utilice expresamente, sí lo requiera alguna extensión/librería a la que se invoca desde el propio lenguaje usado, en cuyo caso la documentación de dicha extensión/librería lo explicará explícitamente.

tincopasan

1) no es difícil poner el código como tal , en vez de una imagen de porquería
2) acostúmbrate a usar "/" como separador en vez de "\"
3) y si declaras:
Código (python) [Seleccionar]
browser.get('http://www.google.com')

que es la forma más  correcta de selenium

painpills

#4
Cita de: Serapis en 17 Junio 2021, 16:35 PM
Muchos lenguajes utilizan el carácter '\' como un carácter de 'escape', cuando es así, y  el string contiene como parte del string ese mismo carácter, debe remplazarse por doble barra '\\' entonces al hacer el parsing del string se reconocen si forman pares contínuos como el propio carácter y 1 solo contínuo como el carácter de escape y podrá procesar el string correctamente.

Esa regla se aplica también a las cadenas que van entre comillas simples o dobles:
'casa's del monte' tendría que escribirse como 'casas''del monte'.
"caso del "monte"", tendría que escribirse como: "caso del ""monte""".

Hay que conocer al detalle la especificación del lenguaje para reconocer cuando se espera. Es frecuente que aún cuando un lenguaje no lo utilice expresamente, sí lo requiera alguna extensión/librería a la que se invoca desde el propio lenguaje usado, en cuyo caso la documentación de dicha extensión/librería lo explicará explícitamente.

Decidí mover el chromedriver al mismo directorio del archivo .py que estoy ejecutando, así podría podría especificar esa ruta sin la necesidad de "/" o "\"  ya que tal vez no se utilizar esos caracteres como es debido, el código quedaría resumido a:


from selenium import webdriver

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.google.com/')



Sigue apareciendo el mismo error, estoy utilizando la versión de python 3.8.8  y la de chromedriver 91.0.4472.101


tincopasan

el código está bien y la versión del chromedriver corresponde con la versión de chrome:
Versión 91.0.4472.114 , que supongo es la que estás utilizando, así que no se cual es el problema. Si bien ahora estoy usando Python 3.9.5 no creo que eso sea el problema.