google colab 中的 Selenium 停止工作并显示错误,因为 chromedriver 服务意外退出。状态代码为:1

Бел*_*сия 5 python selenium chromium selenium-webdriver google-colaboratory

几个小时前,我在 google colab 中对 selenium 的设置工作正常。现在它突然停止工作了。这是一个示例:

!pip install selenium
!apt-get update 
!apt install chromium-chromedriver

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome('chromedriver',
                          chrome_options=chrome_options)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 1
Run Code Online (Sandbox Code Playgroud)

有解决办法吗?

Deb*_*anB 3

这个错误信息...

WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 1
Run Code Online (Sandbox Code Playgroud)

...意味着 chromedriver 服务意外退出。

v18.04这是因为最近 colab 系统从ubuntu更新引起的问题v20.04 LTS

主要原因是,Ubuntu 不再在 snap 包之外分发chromium-browser 。v20.04 LTS


快速解决

@mco-gh按照 的指导(详细信息如下)创建了一个新笔记本@metrizable,目前该笔记本工作正常: https ://colab.research.google.com/drive/1cbEvuZOhkouYLda3RqiwtbM-o9hxGLyC


解决方案

作为解决方案,您可以使用在讨论尝试在 Colab 中使用 Chromedriver 时出现的问题chromium-browser中发布的以下代码块从 Debian buster 存储库安装兼容版本@metrizable

%%shell
# Ubuntu no longer distributes chromium-browser outside of snap
#
# Proposed solution: https://askubuntu.com/questions/1204571/how-to-install-chromium-without-snap

# Add debian buster
cat > /etc/apt/sources.list.d/debian.list <<'EOF'
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster.gpg] http://deb.debian.org/debian buster main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster-updates.gpg] http://deb.debian.org/debian buster-updates main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-security-buster.gpg] http://deb.debian.org/debian-security buster/updates main
EOF

# Add keys
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A

apt-key export 77E11517 | gpg --dearmour -o /usr/share/keyrings/debian-buster.gpg
apt-key export 22F3D138 | gpg --dearmour -o /usr/share/keyrings/debian-buster-updates.gpg
apt-key export E562B32A | gpg --dearmour -o /usr/share/keyrings/debian-security-buster.gpg

# Prefer debian repo for chromium* packages only
# Note the double-blank lines between entries
cat > /etc/apt/preferences.d/chromium.pref << 'EOF'
Package: *
Pin: release a=eoan
Pin-Priority: 500


Package: *
Pin: origin "deb.debian.org"
Pin-Priority: 300


Package: chromium*
Pin: origin "deb.debian.org"
Pin-Priority: 700
EOF

# Install chromium and chromium-driver
apt-get update
apt-get install chromium chromium-driver
Run Code Online (Sandbox Code Playgroud)