在 Selenium 中使用无头 Chrome 设置用户数据目录

Jor*_*lte 5 python selenium google-chrome google-chrome-headless

我试图让无头 Chrome 工作,同时使用以下命令设置用户数据目录:

from selenium import webdriver

options = webdriver.ChromeOptions();
options.add_argument('--user-data-dir=./User_Data') 
options.add_argument('--headless')

browser = webdriver.Chrome(options=options)
Run Code Online (Sandbox Code Playgroud)

这将返回此错误消息:

selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
Run Code Online (Sandbox Code Playgroud)

以下任何情况都不会阻止此消息的显示(如此处所建议的:WebDriverException:未知错误:DevToolsActivePort 文件在尝试启动 Chrome 浏览器时不存在

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.add_experimental_option("useAutomationExtension", False)
Run Code Online (Sandbox Code Playgroud)

我能找到的唯一可以防止出现此错误的方法是添加此参数:

options.add_argument('--remote-debugging-port=45447')
Run Code Online (Sandbox Code Playgroud)

这至少会启动一个无头 Chrome,但仍然不会获取指定的用户目录,在没有无头参数的情况下运行时,一切似乎都按预期工作。

如何让无头 Chrome 使用用户数据目录?

归档时间:

查看次数:

7147 次

最近记录:

5 年,9 月 前