代码之家  ›  专栏  ›  技术社区  ›  Thiago Pereira Maia

Selenium chrome.options中用户数据目录的正确目录是什么

  •  0
  • Thiago Pereira Maia  · 技术社区  · 5 年前

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

    我在这里看了一些问题,比如 this ,它们似乎表明了该论点的正确用法 用户数据目录 在硒中,铬的轮廓路径如下: 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 文件夹。我还尝试了使用该选项的不同组合 profile-dir ,没有成功。

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

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

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

    0 回复  |  直到 5 年前
        1
  •  4
  •   PDHide    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")
    

    顾名思义,usrdir用于用户数据文件夹,profile目录用于指定配置文件。

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