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

Dim*_*ima 7 python chromium selenium-chromedriver selenium-webdriver selenium-webdriver-python

我想通过铬运行硒。我写了这段代码:

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)
Run Code Online (Sandbox Code Playgroud)

但这段代码会抛出一个错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
Stacktrace:
#0 0x55efd7355a23 <unknown>
#1 0x55efd6e20e18 <unknown>
#2 0x55efd6e46e12 <unknown>
Run Code Online (Sandbox Code Playgroud)

正确版本的 chromedriver 位于 usr/bin 中。我究竟做错了什么?

Dim*_*ima 6

我通过 apt 重新安装 chromium 解决了这个问题sudo apt install chromium-browser(之前是通过 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)
Run Code Online (Sandbox Code Playgroud)


use*_*818 5

这是因为您已经指定了--user-data-dira --profile-directory,并且已经有一个正在运行的 Chrome 实例,该实例会在您指定的用户数据目录中创建 a DevToolsActivePort。因此,selenium 将无法生成新的浏览器实例。

我的解决方案是将DefaultProfile 1文件夹(这是我在我的案例中使用的两个配置文件)复制%LOCALAPPDATA%\Microsoft\Edge\User Data\到我新创建的D:\user_data,并指定--user-data-dirD:\user_data。这样我就拥有了仅用于硒的用户数据的副本。

希望这能解决您的问题。