Ubuntu Server 22.04下Selenium模块报错DevToolsActivePort文件不存在
Selenium ChromeDriver "DevToolsActivePort file doesn't exist" 排查建议
添加必要的无头模式补充参数
服务器环境下仅用--headless可能不足以适配无图形环境,补充以下参数解决权限、资源和端口问题:options.add_argument('--headless=new') # 新版无头模式,兼容性更优 options.add_argument('--no-sandbox') # 禁用沙箱机制,服务器无桌面环境时必备 options.add_argument('--disable-dev-shm-usage') # 规避/dev/shm空间不足导致的崩溃 options.add_argument('--remote-debugging-port=9222') # 明确指定调试端口,解决端口冲突检查Chrome与ChromeDriver的执行权限
确认运行脚本的用户能执行这两个文件:ls -l /usr/bin/google-chrome /usr/bin/chromedriver若权限不足,执行:
sudo chmod +x /usr/bin/google-chrome /usr/bin/chromedriver验证Chrome单独启动是否正常
直接在终端运行Chrome无头模式,排除Selenium以外的问题:/usr/bin/google-chrome --headless=new --no-sandbox --disable-dev-shm-usage --dump-dom https://www.google.com如果这条命令报错,说明Chrome本身在服务器环境存在依赖缺失或权限问题,优先解决Chrome的问题。
安装Chrome缺失的系统依赖
Ubuntu Server默认缺少部分图形相关库,安装以下依赖:sudo apt-get install -y libnss3 libgconf-2-4 libfontconfig1 libxrender1 libxss1检查/tmp目录权限
Chrome会在/tmp创建临时文件,确保目录权限正确:ls -ld /tmp正常权限应为
drwxrwxrwt,若不符,执行:sudo chmod 1777 /tmp手动指定用户数据目录
自定义一个可写的用户数据目录,避免默认目录的权限限制:options.add_argument('--user-data-dir=/tmp/chrome-user-data')
内容的提问来源于stack exchange,提问作者rastr__
相关产品推荐
相关产品推荐

