在Google Colaboratory中使用Selenium无法加载Chrome驱动并启动浏览器
在Google Colab中启动可视化Chrome浏览器解决Selenium报错问题
我之前在Colab里折腾Selenium的时候也碰到过一模一样的报错!核心原因很简单:Colab的云端运行环境是没有图形界面的服务器环境,Chrome默认需要图形界面才能启动可视化窗口,直接调用webdriver.Chrome()自然会因为缺少显示环境崩溃,抛出DevToolsActivePort file doesn't exist这类错误。
下面给你一套完整的解决方案,让你能在Colab里模拟图形环境,启动可视化Chrome并观察自动化流程:
1. 安装必要依赖
首先安装虚拟显示工具和相关依赖,用来模拟图形界面环境:
!apt-get update !apt install chromium-chromedriver !cp /usr/lib/chromium-browser/chromedriver /usr/bin !pip install selenium pyvirtualdisplay !apt-get install -y xvfb x11-utils
2. 配置Chrome并启动虚拟显示
通过pyvirtualdisplay创建虚拟显示器,同时给Chrome添加Colab环境必需的启动参数:
from selenium import webdriver from pyvirtualdisplay import Display # 启动虚拟显示器,设置合适的分辨率 display = Display(visible=0, size=(1920, 1080)) display.start() # 配置Chrome启动选项 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--no-sandbox') # 绕过沙箱模式,Colab环境必须开启 chrome_options.add_argument('--disable-dev-shm-usage') # 解决/dev/shm空间不足的问题 chrome_options.add_argument('--start-maximized') # 启动时最大化窗口 chrome_options.binary_location = '/usr/bin/chromium-browser' # 指定Colab中Chrome的二进制文件路径 # 初始化Chrome驱动 driver = webdriver.Chrome(options=chrome_options)
3. 观察自动化流程的两种方法
方法1:截图查看页面状态
如果只需要查看关键步骤的页面状态,可以定期截图并在Colab中显示:
from IPython.display import Image # 打开测试页面 driver.get("https://www.google.com") # 截图并在Colab输出中显示 driver.save_screenshot("google_home.png") Image("google_home.png")
方法2:VNC实时查看(进阶)
如果需要实时交互观察自动化流程,可以配置VNC服务器连接到Colab的虚拟桌面:
- 安装VNC服务器:
!apt-get install -y tightvncserver
- 设置VNC连接密码(执行后按提示输入两次密码):
!vncserver :1 -geometry 1920x1080 -depth 24
- 用端口转发工具将VNC端口暴露到公网,然后用本地VNC客户端连接,就能实时看到Chrome的运行窗口了。
这样配置后,Chrome就能在虚拟显示环境中正常启动可视化模式,不会再出现启动异常的问题啦!
内容的提问来源于stack exchange,提问作者Chiru Harshith




