# Selenium

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

Para integrar Selenium con Oxylabs [**Residential Proxies**](https://oxylabs.io/products/residential-proxy-pool), siga las instrucciones a continuación o vea este tutorial en video:

{% embed url="<https://www.youtube.com/watch?v=uh71blwf1l0>" %}

**Paso 1.** Instalar [**Selenium Wire**](https://github.com/wkeeling/selenium-wire) para ampliar los bindings de Python de Selenium porque usar el módulo Selenium por defecto para implementar proxies que requieren autenticación complica todo el proceso. Puede hacerlo usando `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 diferentes navegadores. En este caso, **no es necesario descargar manualmente una nueva versión del driver web después de cada actualización**.

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

**Paso 2.** Especifique las credenciales de su cuenta para que los proxies funcionen:

`USERNAME = "your_username"`

`PASSWORD = "your_password"`

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

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

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

**Paso 3**. Compruebe 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á usando.

```
pruebe:
    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 integración de Oxylabs [**Residential Proxies**](https://oxylabs.io/products/residential-proxy-pool) con Selenium:

```
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# Un paquete para mantener chromedriver siempre actualizado.
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
    )
    pruebe:
        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 desea aprender más sobre web scraping con Selenium, lea nuestro [**artículo del blog**](https://oxylabs.io/blog/selenium-web-scraping).

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