You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在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的虚拟桌面:

  1. 安装VNC服务器:
!apt-get install -y tightvncserver
  1. 设置VNC连接密码(执行后按提示输入两次密码):
!vncserver :1 -geometry 1920x1080 -depth 24
  1. 用端口转发工具将VNC端口暴露到公网,然后用本地VNC客户端连接,就能实时看到Chrome的运行窗口了。

这样配置后,Chrome就能在虚拟显示环境中正常启动可视化模式,不会再出现启动异常的问题啦!

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

火山引擎 最新活动