Selenium chrome.options 中 user-data-dir 的正确目录是什么

Thi*_*aia 3 python selenium google-chrome selenium-webdriver

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

我在这里查看了一些问题,例如this,它们似乎表明user-data-dirselenium for 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文件夹作为路径,也会发生这种情况。我还使用该选项尝试了不同的组合profile-dir,但没有成功。

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

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

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

PDH*_*ide 5

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

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

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