首页 > 解决方案 > Selenium:指向默认的 Chrome 会话

问题描述

虽然我意识到这不是“好”的做法 - 我有一个用例,我需要将 Selenium 驱动程序指向(连接)到我的默认 Chrome 会话/配置文件。

我的默认配置文件在这里: ~/Library/Caches/Google/Chrome/Default

这是我目前的设置方式:(不工作)

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=~/Library/Caches/Google/Chrome")
options.add_argument("--profile-directory=Default")
browser = webdriver.Chrome(options=options, executable_path=r"./chromedriver")
browser.get("http://google.com")

我正在使用 Chrome 版本 74.0.3729.169 和 chromedriver 版本ChromeDriver 74.0.3729.6(这是兼容版本)。

当 Chrome 打开时,我在 Chrome 的设置中看不到任何 cookie,因此很明显它没有指向我的默认会话。另外,我看到Selenium已经创建了一个目录(这似乎意味着它无法连接到~/Library/Caches/Google/Chrome/Default.

如何将 selenium 连接到我的默认 Chrome 会话?这与正常打开 Chrome 时看到的会话相同。

我看过这个其他问题,但那里的答案未能解决如何将 Selenium 指向默认会话。此外 - 这是一个过时的问题 - Chrome 和 Chromedriver 从那时起取得了很大进展。此外,那里的问题假设发布者能够连接到默认会话 - 我无法做到这一点,这表明 Chromedriver/Chrome 从那时起发生了变化。这个问题也适用于 Windows - 我在 Mac 上,工作方式不同。

标签: seleniumgoogle-chromeselenium-webdrivercookiessession-cookies

解决方案


确保您使用“Chrome://version”指向正确的文件夹。

在此处输入图像描述

我正在使用 Windows,但在你的 mac 案例中也应该类似。

有关更多信息,请参阅此链接

如何创建自定义配置文件:

您可以通过运行 Chrome(在命令行或通过 ChromeDriver)并将 user-data-dir 开关设置为某个新目录来创建自己的自定义配置文件。如果该路径不存在,Chrome 将在指定位置创建一个新配置文件。然后,您可以根据需要修改配置文件设置,ChromeDriver 将来可以使用该配置文件。在浏览器中打开 chrome://version 以查看 Chrome 正在使用的配置文件。

参考:

http://chromedriver.chromium.org/capabilities


推荐阅读