我想把 selenium 和铬混合在一起。我写了这个代码:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-gpu")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
options.binary_location = "/snap/bin/chromium"
driver = webdriver.Chrome(chrome_options=options)
但此代码会引发错误:
selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
Stacktrace:
#0 0x55efd7355a23 <unknown>
#1 0x55efd6e20e18 <unknown>
#2 0x55efd6e46e12 <unknown>
正确版本的chromodriver在usr/bin中,我做错了什么?
4条答案
按热度按时间mitkmikd1#
我通过apt
sudo apt install chromium-browser
重新安装chromium解决了这个问题(之前是通过snap安装的)。omvjsjqw2#
x1月0n1x日
A common cause for Chrome to crash during startup is running Chrome as **
root** user (**
administrator**) on Linux. While it is possible to work around this issue by passing
--no-sandboxflag when creating your WebDriver session, such a configuration is unsupported and highly discouraged. You need to configure your environment to run Chrome as a regular user instead.
但是,您需要注意以下几点:
--disable-gpu
与windows相关,因此需要删除它。chrome_options
,请改用 *options
*。参考
您可以在以下位置找到相关的详细讨论:
pgvzfuti3#
我在将我的chromedriver版本升级到86,并将Python运行时从3.6升级到3.8,在AWS Lambda(Amazon Linux 2)上运行于Docker容器中后,遇到了这个错误。
最后我发现这个主动维护的最小miplementation的python+ selenium +docker. https://github.com/umihico/docker-selenium-lambda/的设置在他们的Dockerfile和test.py chrome_options工作。
lpwwtiir4#
我在这里找到了解决方案:selenium.common.exceptions.WebDriverException:消息:未知错误:对于chrome浏览器和Selenium Python,DevToolsActivePort文件不存在
在ubuntu中,chromium默认使用snap安装,它会破坏selenium。
以下内容修复了该问题:
然后从https://www.google.com/chrome/安装专有chrome
(The官方铬deb包仅包含一个快照)。