You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Selenium中为Chrome远程调试端口设置代理?

问题原因

当通过debuggerAddress连接已启动的Chrome实例时,Selenium Options中添加的--proxy-server参数不会生效。这是因为Chrome的启动参数(包括代理配置)是在启动时加载的,已运行的实例不会再读取新的启动参数。

解决方案

有两种可行的解决方式:

方式一:启动Chrome时直接指定代理

修改启动Chrome的CMD命令,在启动时就带上代理参数,后续Selenium仅需连接调试端口即可:

修改后的启动命令

chrome.exe --remote-debugging-port=8798 --user-data-dir="C:\Users\HP Elitebook\Desktop\Projects\Project Gmail\chromedriver-win64\localhost" --proxy-server=35.236.207.242:33333

对应Selenium代码

import os
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver

os.environ['PATH'] += os.getcwd()+r"\chromedriver-win64"

options = Options()  
options.add_experimental_option('debuggerAddress','127.0.0.1:8798')
chrome = webdriver.Chrome(options=options)

chrome.get("https://whatismyipaddress.com")

myip = WebDriverWait(chrome, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="ipv4"]')))
print(myip.text)

方式二:通过Chrome DevTools Protocol(CDP)动态设置代理

如果无法修改Chrome的启动命令,可以通过CDP在运行时为已连接的实例动态配置代理:

Selenium代码示例

import os
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium import webdriver

PROXY = "35.236.207.242:33333"

os.environ['PATH'] += os.getcwd()+r"\chromedriver-win64"

options = Options()  
options.add_experimental_option('debuggerAddress','127.0.0.1:8798')
chrome = webdriver.Chrome(options=options)

# 使用CDP配置代理
chrome.execute_cdp_cmd('Network.setProxy', {
    'proxySettings': {
        'proxyType': 'manual',
        'httpProxy': PROXY,
        'httpsProxy': PROXY,
        'ftpProxy': PROXY,
        'socksProxy': PROXY,
        'socksVersion': 5
    }
})
# 启用网络监听使配置生效
chrome.execute_cdp_cmd('Network.enable', {})

chrome.get("https://whatismyipaddress.com")

myip = WebDriverWait(chrome, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="ipv4"]')))
print(myip.text)

内容的提问来源于stack exchange,提问作者Abdullah Zaman Babar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 12:53:13