CodeGym /Curso de Java /Python SELF ES /Finalización del trabajo y pruebas del script

Finalización del trabajo y pruebas del script

Python SELF ES
Nivel 36 , Lección 4
Disponible

1. Finalización de la sesión

Cómo cerrar correctamente la sesión del navegador

Entonces, tienes un script increíble que recopila datos, hace clic en botones y realiza muchas cosas mágicas en el navegador. Ahora es importante finalizar su funcionamiento correctamente. Imagínate que tu navegador es como un elefante tranquilo: no puedes simplemente cerrar la puerta y dejarlo. Debes cerrarlo con calma y cortesía. Para esto, utiliza el método quit().

Python

from selenium import webdriver

# Inicialización del driver del navegador
driver = webdriver.Chrome()

# aquí sucede tu magia de navegación... 🧙‍♂️

# Finalización del navegador
driver.quit()

El método quit() cierra todas las ventanas del navegador y finaliza su trabajo. Si olvidas llamarlo, comenzarán historias extrañas con un navegador abierto en segundo plano y fugas de memoria misteriosas. Y todos queremos una vida feliz, ¿verdad?

Solución a problemas con procesos colgados del navegador

A veces, después de trabajar con Selenium, los procesos del navegador permanecen flotando en segundo plano, como unidades indecisas en juegos de estrategia en tiempo real. Esto puede ocurrir, por ejemplo, si tu script "se cayó" en algún lugar en el medio. Una forma de manejar este problema es usar el cierre por lotes de procesos, por ejemplo, con psutil en Python u otros comandos del sistema.

Python

import psutil

# Cerrar todos los procesos colgados de Chrome
for proc in psutil.process_iter():
    # Verificamos si el proceso pertenece al navegador
    if 'chrome' in proc.name().lower():
        proc.kill()

No es la forma más elegante, pero a veces no hay otra opción si los procesos se vuelven incontrolables. Recuerda que al hacer esto matarás todos los procesos del navegador, así que úsalo con sentido común.

2. Pruebas del script

Verificación de la correcta ejecución de todos los pasos del script

Finalizar correctamente el script es solo la mitad del trabajo. Es importante verificar que cada paso se ejecute correctamente. Para este propósito son ideales las herramientas de pruebas de software, como unittest o pytest. Puedes escribir pruebas para asegurarte de que tu script abre páginas correctamente, hace clic en botones y recopila datos.

Veamos una prueba minimalista utilizando unittest:

Python

import unittest
from selenium import webdriver

class TestBrowserAutomation(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_open_page(self):
        self.driver.get("https://example.com")
        self.assertEqual("Example Domain", self.driver.title)

    def tearDown(self):
        self.driver.quit()

unittest.main()

Esta prueba verifica que nuestro script abre la página https://example.com y que el título de la página coincide con lo esperado. Es una forma simple pero poderosa de asegurarte de que las partes clave de tu script funcionan correctamente.

Depuración y optimización

A veces, incluso después de escribir pruebas, tu script se comporta como un niño caprichoso, negándose a funcionar correctamente. Aquí es donde entra en juego la depuración. Usa print() para mostrar valores intermedios y rastrear dónde exactamente algo salió mal. Se aceptan comentarios graciosos en el código, pero no olvides el objetivo: entender qué está pasando.

Por ejemplo, te encuentras con un problema en el que some_element no está presente en la página:

Python

try:
    some_element = driver.find_element_by_id('missing-id')
except Exception as e:
    print(f"¡Ups! Algo salió mal: {e}")

Además, presta mucha atención al rendimiento de tu script. A veces, para optimizar el funcionamiento, se pueden usar diferentes estrategias, como reducir la frecuencia de las solicitudes o optimizar la lógica de búsqueda de elementos.

Prevención de fallos y errores en el futuro

Después de optimizar y depurar, tu script debería funcionar impecablemente, como un reloj suizo, pero siempre existe el riesgo de nuevos problemas. Puedes usar sistemas de registro como logging para registrar lo que sucede en tu script. Esto te permitirá ver dónde y por qué algo salió mal.

Python

import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

logger.info("Inicio del script")

# registra más acciones aquí...

logger.info("Fin del script")

Recuerda que siempre vale la pena tener en cuenta eventos inesperados, especialmente si trabajas con datos o páginas inestables. Considera implementar sistemas de reintentos y tiempos de espera para que el script no falle ante el menor problema.

1
Опрос
Trabajo con formularios,  36 уровень,  4 лекция
недоступен
Trabajo con formularios
Trabajo con formularios
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION