# Selenium

[**Selenium**](https://www.selenium.dev/) es una herramienta que ayuda a automatizar las interacciones con navegadores web para pruebas de sitios web y más.

Para integrar Selenium con Oxylabs [**Mobile Proxies**](https://developers.oxylabs.io/documentation/es/proxies/mobile-proxies), sigue las instrucciones a continuación:

**Paso 1.** Instala [**Selenium Wire**](https://github.com/wkeeling/selenium-wire) para ampliar los enlaces de Python de Selenium, porque usar el módulo Selenium por defecto para implementar proxies que requieren autenticación complica todo el proceso. Puedes hacerlo usando el `pip` comando: `pip install selenium-wire`

Otro paquete recomendado para esta integración es `webdriver-manager`. Es un paquete que simplifica la gestión de controladores binarios para distintos navegadores. En este caso, **no es necesario descargar manualmente una nueva versión del controlador web después de cada actualización**.

Puedes instalar el `webdriver-manager` usando el `pip` comando también: `pip install webdriver-manager`

**Paso 2.** Especifica las credenciales de tu cuenta para que los proxies funcionen:

`USERNAME = "your_username"`

`PASSWORD = "your_password"`

`ENDPOINT = "pr.oxylabs.io:7777"`

Necesitarás ajustar`your_username` y `your_password` campos con el nombre de usuario y la contraseña de tu usuario de proxy.

{% hint style="info" %}
Puedes crear y gestionar tus usuarios de proxy en nuestro [**panel de control**](https://dashboard.oxylabs.io/en/)**.**
{% endhint %}

**Paso 3**. Comprueba si el proxy funciona visitando [**ip.oxylabs.io**](https://ip.oxylabs.io/). Si todo funciona correctamente, devolverá la dirección IP del proxy que estás usando.

```
intenta:
    driver.get("https://ip.oxylabs.io/")
    return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finalmente:
    driver.quit()
```

Código completo para la [**Mobile Proxies**](https://developers.oxylabs.io/documentation/es/proxies/mobile-proxies) integración de Oxylabs con Selenium:

```
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# A package to have a chromedriver always up-to-date.
from webdriver_manager.chrome import ChromeDriverManager

USERNAME = "your_username"
PASSWORD = "your_password"
ENDPOINT = "pr.oxylabs.io:7777"

def chrome_proxy(user: str, password: str, endpoint: str) -> dict:
    wire_options = {
        "proxy": {
            "http": f"http://{user}:{password}@{endpoint}",
            "https": f"https://{user}:{password}@{endpoint}",
        }
    }

    return wire_options

def execute_driver():
    options = webdriver.ChromeOptions()
    options.add_argument('--headless')
    proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT)
    driver = webdriver.Chrome(
    ChromeDriverManager(driver_version='<VERSION>').install(), options=options, seleniumwire_options=proxies
    )
    intenta:
        driver.get("https://ip.oxylabs.io/")
        return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
    finalmente:
        driver.quit()


if __name__ == '__main__':
    print(execute_driver())
```

Si quieres aprender más sobre web scraping con Selenium, lee nuestro [**artículo del blog**](https://oxylabs.io/blog/selenium-web-scraping).

Encuentra la publicación original del blog sobre la integración de Selenium [aquí](https://oxylabs.io/resources/integrations/selenium).
