Lección 1 de 6 · 2 min
Tu primer script con WebDriver
Al terminar sabrás
9 min- Instalar Selenium + pytest y correr un primer test real
- Entender el modelo WebDriver: cada find_element es una pregunta al navegador
- Escribir con WebDriverWait y driver.quit() desde el primer script
Construyes: Tu primer test Selenium de punta a punta con esperas explícitas y cierre garantizado.
Setup en 3 comandos
python -m venv .venv && source .venv/bin/activate
pip install selenium pytest
python -c "from selenium import webdriver; webdriver.Chrome().quit()"
Desde Selenium 4.6, Selenium Manager descarga el driver automáticamente — ya no necesitas bajar chromedriver a mano ni pelear con versiones.
El modelo mental
Selenium no "ve" la página: conversa con el navegador por el protocolo WebDriver. Cada find_element es una pregunta al navegador en ese instante. Esto explica el 90% de los errores de novato: preguntar por un elemento antes de que exista.
Primer test real
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def test_busqueda_en_duckduckgo():
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)
try:
driver.get("https://duckduckgo.com")
buscador = wait.until(EC.element_to_be_clickable((By.NAME, "q")))
buscador.send_keys("selenium python")
buscador.submit()
resultados = wait.until(
EC.presence_of_all_elements_located((By.CSS_SELECTOR, "article"))
)
assert len(resultados) > 0, "La búsqueda no devolvió resultados"
finally:
driver.quit()
Tres cosas para notar desde el día uno:
WebDriverWaitdesde el primer script. No aprendas contime.sleep()"mientras tanto" — los malos hábitos del día 1 son los bugs del mes 6.finally: driver.quit()— si el test falla sin cerrar el navegador, acumulas procesos zombie. (En la lección 3 esto lo resolverá una fixture.)- El assert con mensaje.
assert x, "mensaje"hace que el fallo se explique solo.
Ejecutarlo
pytest test_busqueda.py -v
Comprueba el modelo mental con el quiz y extiende el test en el reto.
Compruébalo
0/3Responde sin mirar atrás. Verás la explicación al instante.
1. Desde Selenium 4.6, ¿qué hace Selenium Manager por ti?
2. ¿Cuál es el error que causa el 90% de los fallos de novato?
3. ¿Por qué no aprender con time.sleep() 'mientras tanto'?
Reto: verifica el primer resultado
Modifica el test para verificar que el primer resultado contiene la palabra 'Selenium' en su título.
Vas a necesitar resultados[0].text — y descubrirás por qué a veces está vacío.