Selenium无网络连接问题求助(MAC系统)
排查方案
一、开启WebDriver详细日志定位问题
要获取ChromeDriver的内部运行日志,在初始化driver时添加日志参数,将日志输出到本地文件,通过日志可以看到请求失败的具体原因:
from selenium import webdriver from selenium.webdriver.chrome.options import Options chrome_options = Options() # 开启全量详细日志 chrome_options.add_argument('--log-level=ALL') chrome_options.add_argument('--verbose') # 替换为你自己的日志存储路径 driver = webdriver.Chrome(options=chrome_options, service_log_path='/Users/你的用户名/chromedriver.log') driver.get("https://www.google.com/")
重点查看日志中的这些内容:
- 以
net::ERR_开头的网络错误码 - DNS解析失败、TCP连接超时的相关记录
- 权限拦截、资源访问被阻止的提示信息
二、系统层面排查进程与网络阻塞
- 实时监控网络连接状态
问题复现时,用Mac自带命令查看ChromeDriver和Chrome进程的网络情况:
# 先查Chrome相关进程的PID ps aux | grep -E "Chrome|chromedriver" # 替换PID为查到的进程号,查看该进程的网络连接 lsof -i -P -n -p [进程PID]
或者用netstat查看全系统网络连接,排查异常占用:
netstat -an | grep -E "ESTABLISHED|SYN_SENT"
- 排查后台干扰进程
重启后恢复正常,说明是某个后台进程运行一段时间后出问题,重点排查这些类型:
- 杀毒、防火墙工具(比如Little Snitch、CleanMyMac):检查是否有拦截ChromeDriver/Chrome的规则
- 隐性代理工具:用
networksetup -getwebproxy Wi-Fi和networksetup -getsecurewebproxy Wi-Fi查看当前代理状态,确认是否被自动开启了代理 - 系统网络扩展:在「系统设置-网络-高级-代理」里查看未知配置,或者用
ls /Library/Extensions | grep -E "network|proxy"排查可疑扩展 - 其他自动化脚本:定时运行的爬虫、测试工具可能占用端口或网络资源
三、Chrome与WebDriver的深层排查
- 重置Chrome配置
Chrome缓存或配置异常可能导致网络问题,重置操作:
- 打开Chrome输入
chrome://settings/reset,选择「恢复设置至原始默认值」 - 或备份后删除用户数据目录:
rm -rf ~/Library/Application\ Support/Google/Chrome/Default
- 测试无沙箱模式
Chrome沙箱机制可能和系统进程冲突,尝试关闭沙箱启动:
chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage')
- 检查端口占用
ChromeDriver默认用9515端口,检查是否被占用:
lsof -i :9515
如果被占用,杀死对应进程,或者指定其他端口启动:
from selenium.webdriver.chrome.service import Service service = Service(port=9516) driver = webdriver.Chrome(service=service, options=chrome_options)
内容的提问来源于stack exchange,提问作者fer0m
相关产品推荐
相关产品推荐

