# Selenium

[**Selenium**](https://www.selenium.dev/) 是一个帮助自动化网页浏览器交互以进行网站测试等的工具。

要将 Selenium 与 Oxylabs 集成 [**移动代理**](https://developers.oxylabs.io/documentation/cn/dai-li/mobile-proxies)，请按照以下说明：

**步骤 1。** 安装 [**Selenium Wire**](https://github.com/wkeeling/selenium-wire) 以扩展 Selenium 的 Python 绑定，因为使用默认的 Selenium 模块来实现需要认证的代理会使整个过程变得复杂。你可以使用 `pip` 命令： `pip install selenium-wire`

另一个推荐用于此集成的软件包是 `webdriver-manager`。这是一个简化不同浏览器二进制驱动管理的包。在这种情况下， **无需在每次更新后手动下载新的 Web 驱动程序版本**.

你也可以安装 `webdriver-manager` 使用 `pip` 命令： `pip install webdriver-manager`

**步骤 2。** 指定你的账号凭据以使代理工作：

`USERNAME = "your_username"`

`PASSWORD = "your_password"`

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

你需要调整`your_username` 和 `your_password` 字段为你的代理用户的用户名和密码。

{% hint style="info" %}
你可以在我们的 [**仪表板**](https://dashboard.oxylabs.io/en/)**.**
{% endhint %}

**步骤 3**。通过访问检查代理是否工作 [**ip.oxylabs.io**](https://ip.oxylabs.io/)。如果一切正常 - 它将返回你正在使用的代理的 IP 地址。

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

Oxylabs 与 Selenium 集成的完整代码： [**移动代理**](https://developers.oxylabs.io/documentation/cn/dai-li/mobile-proxies) 集成与 Selenium：

```
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# 一个用于保持 chromedriver 始终为最新版本的包。
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
    )
    尝试：
        driver.get("https://ip.oxylabs.io/")
        return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
    最后：
        driver.quit()


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

如果你想了解更多使用 Selenium 进行网页爬取的内容，请阅读我们的 [**博客文章**](https://oxylabs.io/blog/selenium-web-scraping).

查找原始的 Selenium 集成博客文章 [此处](https://oxylabs.io/resources/integrations/selenium).
