首页 > 解决方案 > Selenium chrome.options 中用户数据目录的正确目录是什么

问题描述

我正在尝试在 python 上使用 selenium 进行一些 chrome 自动化,并且我想为 youtube 保存我的登录信息,这样我就不必自动化登录过程。我读到让 chrome 读取我保存的信息的方法是使用该user-data-dir选项,但我无法让它工作。

我在这里查看了一些问题,例如this,它们似乎表明user-data-dir在 selenium 中正确使用 chrome 中的参数是内部的配置文件路径:C:\Users\adassa\AppData\Local\Google\Chrome\User Data。比如DefaultProfile 1。我似乎无法使用这种路径获得预期的结果。对我有用的唯一路径是User Data文件夹本身。

所以当我这样做时:

chrome_options.add_argument("--user-data-dir=" + r'C:\\Users\\adassa\AppData\\Local\\Google\\Chrome\\User Data')

使用为默认配置文件设置的首选项打开 chrome 实例。但这只有在我关闭所有其他 chrome 实例时才能正常工作,否则会引发错误:invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir

我认为这是由于我的手动 chrome 实例阻止访问文件夹上的信息引起的,因为我正在使用它。我读到我可以创建一个新的 chrome 配置文件,这样它就不会与我通常使用的配置文件冲突,但是如果我在 chrome 上手动创建一个新的配置文件,并使用配置文件路径,如下所示:

chrome_options.add_argument("--user-data-dir=" + r'C:\\Users\\adassa\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1')

新实例没有我保存到配置文件的信息。即使我将User Data\Default文件夹用作路径,也会发生这种情况。我也使用 option 尝试了不同的组合profile-dir,但没有成功。

阅读文档后,我尝试使用不存在的文件夹。在这种情况下,selenium 确实创建了新文件夹,但是当我尝试通过 selenium 创建的实例登录 youtube 时,为了保存信息以供浏览器下次使用,我收到此消息(我的翻译):

无法登录。此浏览器或应用程序可能不安全。

我很想找到一种方法来保存我的数据,这样我就不必每次都登录,也不必在运行我的脚本时关闭所有其他 chrome 实例。任何帮助表示赞赏。

标签: pythonseleniumgoogle-chromeselenium-webdriver

解决方案


chrome_options.add_argument("--user-data-dir=C:\\Users\\adassa\AppData\\Local\\Google\\Chrome\\User Data")
chrome_options.add_argument("--profile-directory=Profile 1")

顾名思义,usr-dir 用于用户数据文件夹,而 profile-directory 用于指定配置文件。

如果配置文件文件夹是默认的,您不必指定 chrome 默认使用它,否则指定它"--profile-directory=Profile 1"


推荐阅读