python - 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
。比如Default
或Profile 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 实例。任何帮助表示赞赏。
解决方案
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"
推荐阅读
- tizen - HEREWego 在 Tizen 应用程序中
- javascript - 操作方法:Bootstrap 4 内联复选框 - 在屏幕大小更改时更改为堆栈
- javascript - 基于3个下拉值加上硬编码值实时计算
- angular - 错误 TS2315:类型“ElementRef”不是通用的。吴蚂蚁设计
- glsl - Cesium 在 Cartesian3 空间中定义的 AxisAligned 边界框内绘制地球表面
- data-binding - Angular 7-组件之间动态共享变量
- c# - 如何正确处理 SpeechSynthesizer 以进行异步文本转语音?
- prestashop - Prestashop:如何在结帐标题中获取步骤号
- javascript - Javascript中的“附加”
- python - 用于连接 psycopg2 postgresql 的 python 文件