Instalación de Selenium con pip
flowchart TD
Py["Python 3.10+"] --> Venv[python -m venv .venv]
Venv --> Act[Activar entorno]
Act --> Pip[pip install selenium]
Pip --> Req[requirements.txt fijar versión]
Pip --> Pkg["selenium 4.27+"]
Pkg --> SM[Selenium Manager incluido]
SM --> Auto[Descarga drivers automática]
Auto --> CD[chromedriver]
Auto --> GD[geckodriver]
Auto --> ED[edgedriver]
Pip --> Test[primer_test.py]
Test --> Run[python primer_test.py]
Run --> Browser["Chrome se abre + script ejecuta"]
La forma más sencilla de instalar Selenium en Python es usando pip, el gestor de paquetes estándar de Python.
pip install selenium
Para instalar una versión específica y garantizar reproducibilidad:
pip install selenium==4.26.0
Entorno virtual con venv
Es una buena práctica aislar las dependencias de cada proyecto usando entornos virtuales. Esto evita conflictos entre proyectos y permite reproducir el entorno exacto en cualquier máquina.
# Crear el entorno virtual
python -m venv venv
# Activar en Linux/macOS
source venv/bin/activate
# Activar en Windows
venv\Scripts\activate
# Instalar Selenium en el entorno virtual
pip install selenium
# Desactivar el entorno virtual cuando termines
deactivate
Archivo requirements.txt
El archivo requirements.txt es la forma estándar de documentar y reproducir las dependencias de un proyecto Python.
# Generar requirements.txt con las versiones instaladas
pip freeze > requirements.txt
# Instalar desde requirements.txt en otro entorno
pip install -r requirements.txt
Un requirements.txt típico para un proyecto Selenium con Python:
selenium==4.26.0
pytest==8.3.5
pytest-html==4.1.1
pytest-xdist==3.6.1
Selenium Manager: gestión automática de drivers
Desde Selenium 4.6, el proyecto incluye Selenium Manager, una herramienta de línea de comandos escrita en Rust que detecta automáticamente el navegador instalado en el sistema y descarga el driver compatible.
Esto significa que ya no necesitas:
- Descargar ChromeDriver manualmente
- Configurar la variable de entorno
PATHcon la ruta del driver - Usar librerías externas como
webdriver-manager
Simplemente instanciando el navegador, Selenium se encarga del resto:
from selenium import webdriver
# Selenium Manager descarga y configura ChromeDriver automáticamente
driver = webdriver.Chrome()
driver.get("https://www.ejemplo.com")
print(driver.title)
driver.quit()
Comportamiento de Selenium Manager
Selenium Manager sigue este orden para localizar el driver:
- Variable de entorno
SE_CHROMEDRIVER(o equivalente para otros navegadores) - PATH del sistema: busca
chromedriveren las rutas del sistema - Caché local: directorio
~/.cache/selenium/donde guarda los drivers descargados - Descarga automática: si no lo encuentra, descarga la versión compatible con el navegador instalado
Primer script de verificación
Crea el archivo test_instalacion.py para verificar que todo funciona:
from selenium import webdriver
from selenium.webdriver.common.by import By
def main():
# Inicializar ChromeDriver (Selenium Manager lo gestiona automáticamente)
driver = webdriver.Chrome()
try:
# Navegar a una página
driver.get("https://www.selenium.dev")
# Obtener información básica
print(f"Título: {driver.title}")
print(f"URL: {driver.current_url}")
# Verificar que la página cargó correctamente
assert "Selenium" in driver.title, "El título no contiene 'Selenium'"
print("¡Instalación correcta! Selenium está funcionando.")
finally:
# Siempre cerrar el navegador
driver.quit()
if __name__ == "__main__":
main()
Ejecuta el script:
python test_instalacion.py
Otros navegadores
Selenium es compatible con múltiples navegadores. La inicialización es igual de sencilla:
from selenium import webdriver
# Chrome
driver = webdriver.Chrome()
# Firefox
driver = webdriver.Firefox()
# Edge
driver = webdriver.Edge()
# Safari (solo en macOS, requiere habilitar Remote Automation en las preferencias)
driver = webdriver.Safari()
Modo headless (sin interfaz gráfica)
El modo headless permite ejecutar el navegador sin interfaz gráfica, ideal para entornos de CI/CD o servidores sin pantalla.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless=new") # headless moderno en Chrome 112+
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(options=options)
driver.get("https://www.ejemplo.com")
print(driver.title)
driver.quit()
Para Firefox en modo headless:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
options = Options()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("https://www.ejemplo.com")
print(driver.title)
driver.quit()
Estructura de proyecto recomendada
Una estructura limpia y organizada facilita el mantenimiento y la colaboración:
mi-proyecto-selenium/
├── venv/ # Entorno virtual (no versionar)
├── pages/ # Page Objects
│ ├── __init__.py
│ ├── login_page.py
│ └── home_page.py
├── tests/ # Tests con pytest
│ ├── __init__.py
│ ├── conftest.py # Fixtures compartidas
│ └── test_login.py
├── utils/ # Utilidades y helpers
│ ├── __init__.py
│ └── driver_factory.py
├── requirements.txt # Dependencias
└── pytest.ini # Configuración de pytest
Verificación de la versión instalada
# Verificar la versión de Selenium instalada
pip show selenium
# Verificar desde Python
python -c "import selenium; print(selenium.__version__)"
A partir de Selenium 4.26, el paquete incluye todas las dependencias necesarias para WebDriver, incluyendo los bindings para Chrome, Firefox, Edge y Safari.
Fuentes y referencias
Documentación oficial y recursos externos para profundizar en Selenium
Documentación oficial de Selenium
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Selenium es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Selenium
Explora más contenido relacionado con Selenium y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
Instalar Selenium con pip en entorno virtual Python. Configurar un proyecto Python con requirements.txt para gestión de dependencias. Comprender cómo Selenium Manager gestiona automáticamente los drivers de navegador. Verificar la instalación ejecutando el primer script básico con ChromeDriver. Conocer las diferencias entre selenium 4.x y versiones anteriores en Python.