selenium.common.exceptions.WebDriverException:消息:未知错误:对于chrome浏览器和Selenium Python,DevToolsActivePort文件不存在

0qx6xfy6  于 2022-11-24  发布在  Python
关注(0)|答案(4)|浏览(215)

我想把 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中,我做错了什么?

mitkmikd

mitkmikd1#

我通过apt sudo apt install chromium-browser重新安装chromium解决了这个问题(之前是通过snap安装的)。

options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
if headless:
options.add_argument('--headless')
options.binary_location = "/usr/bin/chromium-browser"
self.driver = webdriver.Chrome(options=options)
omvjsjqw

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-gpuwindows相关,因此需要删除它。
  • 不推荐使用chrome_options,请改用 * options *。
driver = webdriver.Chrome(options=options)

参考

您可以在以下位置找到相关的详细讨论:

  • Web驱动程序异常:未知错误:尝试启动Chrome浏览器时DevToolsActivePort文件不存在
  • 带铬浏览器的Selenium-Python(Windows)
  • 未知错误:在ubuntu上执行Selenium UI测试用例时出现DevToolsActivePort文件不存在错误
pgvzfuti

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工作。

lpwwtiir

lpwwtiir4#

我在这里找到了解决方案:selenium.common.exceptions.WebDriverException:消息:未知错误:对于chrome浏览器和Selenium Python,DevToolsActivePort文件不存在
在ubuntu中,chromium默认使用snap安装,它会破坏selenium。
以下内容修复了该问题:

sudo snap remove chromium

然后从https://www.google.com/chrome/安装专有chrome
(The官方铬deb包仅包含一个快照)。

相关问题