【发布时间】:2019-12-06 01:40:56
【问题描述】:
我已经阅读了几个关于这个问题的帖子,但没有一个对我有真正的帮助,所以就这样吧。我正在尝试在 google colab 上使用 selenium webdriver。我在安装它时遇到了一些问题,但最后使用下面的代码,我能够安装它:
!pip install selenium
!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin
import sys
sys.path.insert(0,'/usr/lib/chromium-browser/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')
wd = webdriver.Chrome('chromedriver',chrome_options=chrome_options)
wd.get("https://www.webite-url.com")
然而,现在当我运行这两行代码时:
from selenium import webdriver
driver = webdriver.Chrome()
这是我得到的错误:
WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
【问题讨论】:
-
一般浏览器使用本地显卡和显示器来显示窗口。如果您在服务器上运行代码,那么它会尝试在此服务器中使用显卡和显示器,但服务器通常没有显卡和显示器 - 因为没有人可以看到这个屏幕(除了服务器的管理员)。这可能会产生问题。当您使用选项
headless时,Chrome 可以在不显示窗口的情况下运行,然后它可以在服务器上运行。 (没有监视器的服务器被称为“无头”,因为监视器看起来像头) -
@furas 我认为代码中已经存在无头选项,对吗?
-
你必须在每个
webdriver.Chrome()中使用headless- 它运行新的浏览器。 -
你能告诉我怎么做吗? @furas
-
您的问题中已经包含它 -
webdriver.Chrome('chromedriver',chrome_options=chrome_options)。您必须在每个webdriver.Chrome()中使用chrome_options和--headless
标签: python selenium-webdriver chromium