我试图让无头 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)
这将返回此错误消息:
selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist
以下任何一项都不会阻止此消息的显示(如下所示:WebDriverException:未知错误:尝试启动 Chrome 浏览器时 DevToolsActivePort 文件不存在 https://stackoverflow.com/questions/50642308/webdriverexception-unknown-error-devtoolsactiveport-file-doesnt-exist-while-t)
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)
我能找到的唯一可以防止出现此错误的方法是添加此参数:
options.add_argument('--remote-debugging-port=45447')
这至少会启动一个无头 Chrome,但仍然不会获取指定的用户目录,在没有无头参数的情况下运行时,一切似乎都按预期工作。
如何让无头 Chrome 使用用户数据目录?