Instalación de Selenium
Antes de empezar a usar Selenium, necesitamos instalarlo. A continuación se muestran los pasos detallados para instalar Selenium.
Selenium es compatible con varios lenguajes de programación, pero esta serie de tutoriales usará Python como ejemplo.
Si aún no tienes Python instalado, puedes instalarlo siguiendo los siguientes pasos:
- Visitasitio web oficial de Python。
- Descarga el paquete de instalación de Python adecuado para tu sistema operativo.
- Ejecuta el instalador y asegúrate de marcar la opción "Add Python to PATH" durante la instalación.
- Una vez completada la instalación, abre la línea de comandos (en Windows, el Símbolo del sistema o PowerShell; en macOS y Linux, la Terminal) e introduce
python --versionopython3 --versionpara comprobar si Python se instaló correctamente.
También puedes consultar el contenido de Python en:Tutorial de Python
Después de instalar Python, podemos usarpippara instalar Selenium.pipes la herramienta de gestión de paquetes de Python, utilizada para instalar y administrar librerías de Python.
Abre la línea de comandos e introduce el siguiente comando para instalar Selenium:
pip install selenium
Si estás usando Python3, es posible que necesites usarpip3:
pip3 install selenium
Una vez completada la instalación, puedes comprobar si Selenium se instaló correctamente con el siguiente comando:
pip show selenium
Si se muestra la información de la versión de Selenium, la instalación fue exitosa.
Descargar el controlador del navegador
Selenium necesita un controlador del navegador para controlar el navegador.
Cada navegador requiere un controlador diferente; a continuación se muestran las direcciones de descarga de los controladores de los navegadores más comunes:
- Chrome: ChromeDrivery la documentación de ChromeDriver se puede consultar en:Introducción a ChromeDriver。
- Firefox: GeckoDriver
- Edge: EdgeDriver
Descarga el controlador adecuado para la versión de tu navegador y añade su ruta a las variables de entorno del sistema, o coloca el archivo del controlador en el directorio donde se encuentra el script de Python.
Usar Selenium
Una vez instalados Selenium y el controlador del navegador, podemos empezar a escribir scripts de automatización.
A continuación se muestra un ejemplo sencillo que muestra cómo usar Selenium para abrir una página web y obtener el título de la página.
1. Importar Selenium
Primero, necesitamos importar elwebdrivermódulo de Selenium:
from selenium import webdriver
2. Iniciar el navegador
A continuación, necesitamos iniciar una instancia del navegador. En esta serie usaremos Chrome como ejemplo.
driver = webdriver.Chrome(executable_path='path/to/chromedriver')
Selecciona el navegador e inicializa WebDriver:
Ejemplo
# Usar el navegador Chrome
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
# O usar el navegador Firefox
# driver = webdriver.Firefox(executable_path='/path/to/geckodriver')
# O usar el navegador Edge
# driver = webdriver.Edge(executable_path='/path/to/msedgedriver')
A partir de Selenium 4, la gestión del controlador del navegador ha cambiado: Selenium 4 intenta detectar automáticamente la versión del navegador instalada en el sistema y descarga el controlador correspondiente. Esto significa que los usuarios ya no necesitan descargar y configurar manualmente la ruta del controlador, a menos que necesiten una versión específica del controlador.
Ejemplo
driver = webdriver.Chrome() # Si usas otro navegador, como Firefox, debes modificarlo en consecuencia
Debido al entorno de red en China, la descarga automática del controlador requiere un entorno de red diferente, por lo que se recomienda descargar el controlador manualmente y luego especificar la ruta del controlador.
En Selenium 4, ya no se establece directamente la ruta del controlador en webdriver.Chrome, sino que se configura mediante la introducción del objeto Service. Esto evita las advertencias de obsolescencia y garantiza la carga correcta del controlador. Por ejemplo:
Ejemplo
from selenium.webdriver.chrome.service import Service as ChromeService
service = ChromeService(executable_path="PATH_TO_DRIVER")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
Si colocaschromedriveren la ruta del sistema, o lo colocas en el directorio donde se encuentra el script de Python, puedes omitir elexecutable_pathparámetro:
driver = webdriver.Chrome()
3. Abrir una página web
Usa elgetmétodo para abrir una página web:
driver.get('https://www.baidu.com')
4. Obtener el título de la página
Podemos usar latitlepropiedad para obtener el título de la página actual:
print(driver.title)
5. Cerrar el navegador
Después de completar las operaciones, recuerda cerrar el navegador:
driver.quit()
6. Ejemplo completo
Combina los pasos anteriores; el código completo es el siguiente:
Ejemplo
from selenium.webdriver.chrome.service import Service as ChromeService
# Establecer la ruta correcta del controlador
service = ChromeService(executable_path="/EJEMPLO/Downloads/chromedriver-mac-arm64/chromedriver")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# Abrir un sitio web
driver.get("https://www.baidu.com")
# Obtener el título de la página
print(driver.title)
# Cerrar el navegador
driver.quit()
Cuando el código anterior se ejecute correctamente, se abrirá el navegador y se abrirá la página web, como se muestra a continuación:

Después de abrir, se mostrará el título de la página web:
Busca en Baidu y lo sabrás.
Usar window.stop() para forzar la detención de la carga de la página
A veces una página web tarda demasiado en cargar, lo que puede provocar excepciones. Para poder extraer datos sin problemas, puedes dejar que la página cargue durante unos segundos y luego ejecutar el código JavaScript window.stop() para forzar la detención de la carga de la página.
Ejemplo
from selenium.webdriver.chrome.service import Service as ChromeService
# Establecer la ruta correcta del controlador
service = ChromeService(executable_path="/EJEMPLO/Downloads/chromedriver-mac-arm64/chromedriver")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# Abrir un sitio web
driver.get("https://www.baidu.com")
# Esperar a que la página termine de cargar
time.sleep(2) # Puedes ajustar el tiempo de espera según sea necesario
# Forzar la detención de la carga de la página
driver.execute_script("window.stop();")
# Obtener el título de la página
print(driver.title)
# Cerrar el navegador
driver.quit()
Operaciones comunes
Además de abrir páginas web y obtener títulos, Selenium admite muchas otras operaciones. A continuación se muestran algunos ejemplos de operaciones comunes:
1. Buscar elementos
Puedes usar elfind_elementmétodo para buscar elementos en la página. Por ejemplo, buscar un campo de entrada y escribir texto:
Ejemplo
input_element.send_keys('Selenium')
2. Hacer clic en un botón
Puedes usar elclickmétodo para hacer clic en un botón:
Ejemplo
button_element.click()
3. Esperar a que la página cargue
A veces los elementos de la página no se cargan de inmediato; podemos usarWebDriverWaitpara esperar a que aparezca el elemento:
Ejemplo
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.NAME, 'q')))