Blog
Dar un ejemplo práctico del uso de Selenium con Python abriendo un navegador y dándole instrucciones para que realize una tarea sencilla
Explicar a detalle el ejemplo dado
Si has seguido el post de instalación de Selenium en python ahora vamos a realizar un sencillo ejecicio práctico para comprobar que tienes Selenium correctamente instalado y empezaremos a explicar éste entorno de pruebas de software portátil para aplicaciones web.
Ejemplo nº1 con Selenium en python:
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox(executable_path=r'C:\Users...añade tu ruta del... \geckodriver.exe') driver.get("https://unipython.com/los-mejores-ide-python-instalar-python-os-window-linux/") assert "Python" in driver.title elem = driver.find_element_by_name("s") elem.clear() elem.send_keys("selenium") elem.send_keys(Keys.RETURN) assert "No results found." not in driver.page_source
En la 3º línea puedes ver que añado donde tengo el archivo "geckodriver.exe"
Ejecutando este código debe abrise una ventana del geckodriver y un nuevo navegador con la url que esta escrita en la línea nº4. En la siguiente imagen podemos ver la url abierta y en la línea de la url podemos ver la cara de un robot (ver la flecha roja vertical de la imagen), justo al lado de donde aparece el candado de color verde.
Explicando el ejemplo
El módulo selenium.webdriver proporciona todas las implementaciones de WebDriver. Actualmente las implementaciones de WebDriver soportadas son Firefox, Chrome, IE y Remote. La clase Keys proporciona teclas en el teclado como RETURN, F1, ALT, etc.
from selenium import webdriver from selenium.webdriver.common.keys import Keys
A continuación, se crea la instancia de Firefox WebDriver.
driver = webdriver.Firefox(executable_path=r'C:\Users...añade tu ruta del... \geckodriver.exe')
El método driver.get navegará a una página dada por la URL. WebDriver esperará hasta que la página se haya cargado completamente (es decir, el evento “onload” se haya disparado) antes de devolver el control a su prueba o script. Vale la pena notar que si su página usa mucho AJAX en carga, es posible que WebDriver no sepa cuándo se ha cargado por completo.
driver.get("https://unipython.com/los-mejores-ide-python-instalar-python-os-window-linux/")
La siguiente línea es una afirmación para confirmar que el título tiene la palabra “Python”:
assert "Python" in driver.title
WebDriver ofrece varias formas de encontrar elementos utilizando uno de los métodos find_element_by_*. Por ejemplo, el elemento de texto de entrada se puede localizar por su atributo de nombre utilizando el método find_element_by_name. En este ejemplo se ha buscado el elemento de nombre ‘s’ el cual es el buscador. Encontrará una explicación detallada de los elementos de localización en el capítulo Elementos de localización:
elem = driver. find_element_by_name ("s")
A continuación, estamos enviando las teclas, esto es similar a la introducción de teclas con el teclado. Las teclas especiales se pueden enviar usando la clase Keys importadas de selenium. webdriver. common. keys. Para estar seguros, primero eliminaremos cualquier texto pre-poblado en el campo de entrada (por ejemplo,”Buscar”) para que no afecte a nuestros resultados de búsqueda (puedes ver que hemos escrito selenium en el buscador en la flecha roja de la imagen de arriba):
elem. clear () elem. send_keys ("selenium") elem. send_keys (Keys. RETURN)
Después de la presentación de la página, usted debe obtener el resultado si lo hay. Para asegurarse de que se encuentran algunos resultados, haga una afirmación:
assert "No results found." not in driver.page_source
Finalmente, la ventana del navegador está cerrada. También puede llamar al método de abandono en lugar de cerrar. La salida saldrá de todo el navegador mientras que cerrar cerrará una pestaña, pero si sólo una pestaña estaba abierta, por defecto la mayoría de los navegadores saldrán completamente.
driver. close ()
➡ Felicidades, has completado tu primer programa de automatización con Selenium. Si quieres seguir aprendiendo con nosotros inicia nuestro curso Selenium con Python y te daremos muchos ejemplos de esta librería:
[…] En la siguiente lección -> Empezando con Selenium […]