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

Linux下Python调用Selenium+Chromedriver截图终端无响应问题求助

解决Selenium+ChromeDriver在Linux下启动卡住的问题

看起来你遇到了ChromeDriver启动时卡住无响应的问题,我来给你几个实用的排查和解决思路:

1. 优先确认Chrome浏览器与ChromeDriver的版本匹配

这是最常见的触发原因——ChromeDriver的版本必须和你系统中安装的Chrome浏览器大版本完全一致(比如Chrome是118.x,Driver也得是118.x系列)。

  • 查看Chrome版本:执行 google-chrome --version
  • 查看ChromeDriver版本:执行 chromedriver --version
    如果版本不匹配,重新下载对应版本的ChromeDriver替换即可。

2. 直接指定ChromeDriver的绝对路径

虽然你已经创建了软链接,但有时候系统环境变量或权限问题会导致驱动无法被正确识别。试试在代码里直接指定驱动的绝对路径:

如果你用的是较新版本的Selenium(支持Service类):

#!/usr/bin/env python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service('/usr/local/share/chromedriver')
browser = webdriver.Chrome(service=service)
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()

如果你用的是旧版Selenium(比如你当前Python2.7对应的版本):

#!/usr/bin/env python
from selenium import webdriver

browser = webdriver.Chrome(executable_path='/usr/local/share/chromedriver')
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()

3. 针对无桌面Linux环境添加无头模式配置

如果你的Linux是没有图形界面的服务器,Chrome必须以无头模式运行,否则会卡在启动环节。添加以下配置参数:

#!/usr/bin/env python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头模式
chrome_options.add_argument('--no-sandbox')  # 解决Linux下的沙箱权限问题
chrome_options.add_argument('--disable-dev-shm-usage')  # 避免/dev/shm内存不足导致的崩溃

# 结合绝对路径使用
browser = webdriver.Chrome(executable_path='/usr/local/share/chromedriver', options=chrome_options)
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()

--no-sandbox和--disable-dev-shm-usage这两个参数在Linux环境下几乎是必备的,尤其是非root用户运行时。

4. 检查ChromeDriver的文件权限

确保你的ChromeDriver文件有可执行权限,并且当前用户能读取它:
执行命令:

chmod +x /usr/local/share/chromedriver
ls -l /usr/local/share/chromedriver

确认输出中的权限列包含x(可执行),且所属用户/组是当前运行代码的用户。

5. 查看ChromeDriver的启动日志定位问题

让ChromeDriver输出详细日志,帮助你找到具体的启动故障点:

#!/usr/bin/env python
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 指定日志输出路径
service = Service('/usr/local/share/chromedriver', log_path='./chromedriver.log')
browser = webdriver.Chrome(service=service)
browser.get('http://www.google.com/')
browser.save_screenshot('screenie.png')
browser.quit()

运行后查看生成的chromedriver.log文件,里面会记录驱动启动时的所有细节,包括可能的错误提示。

内容的提问来源于stack exchange,提问作者user1427930

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:18:08