自动化测试(Selenium、Playwright、Puppeteer)里配代理IP,很多人的做法是随便找个代理填进去就开跑。然后遇到各种奇怪问题:连接超时、SSL证书错误、验证码弹窗。这篇整理几个常见坑和解决方法。
一、Selenium配代理
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opts = Options()
opts.add_argument('--proxy-server=socks5://IP:端口')
driver = webdriver.Chrome(options=opts)常见坑:Chrome对SOCKS5代理的支持有限——如果你配了SOCKS5但需要用户名密码认证,直接在命令行参数里无法设置。解决办法是用 selenium-wire 库或者配合 proxy.py 做中间代理。
二、Playwright配代理
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
'server': 'socks5://IP:端口',
'username': 'user',
'password': 'pass'
})Playwright对代理的支持比Selenium原版好——原生支持SOCKS5认证、支持按browser context级别设置代理(不同标签页不同IP)。
三、通用排错项
- 代理超时:加大timeout参数。代理IP的延迟通常比直连高;
- SSL证书错误:代理服务器的SSL配置可能有问题。加上
ignore_https_errors=True跳过证书验证(Playwright); - WebDriver被检测:有些目标站会检测Selenium特征。用 undetected-chromedriver 或 playwright-stealth 对抗检测;
- 验证码:如果每个新IP都被弹验证码,不是你代码的问题——是这个IP信誉太差。换个住宅IP试试。
四、代理IP选择
自动化测试建议用静态住宅IP——固定不变避免频繁换IP触发风控,住宅类型减少被识别为机器人的概率。天行IP住宅N节点月6元(link/5629,blsj四折)是经济选择。更多工具看极跃IP资源导航。






