selenium - 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 上,工作方式不同。
解决方案
确保您使用“Chrome://version”指向正确的文件夹。
我正在使用 Windows,但在你的 mac 案例中也应该类似。
有关更多信息,请参阅此链接。
如何创建自定义配置文件:
您可以通过运行 Chrome(在命令行或通过 ChromeDriver)并将 user-data-dir 开关设置为某个新目录来创建自己的自定义配置文件。如果该路径不存在,Chrome 将在指定位置创建一个新配置文件。然后,您可以根据需要修改配置文件设置,ChromeDriver 将来可以使用该配置文件。在浏览器中打开 chrome://version 以查看 Chrome 正在使用的配置文件。
参考:
推荐阅读
- c# - 如何从添加到字典中的数组中删除重复值
- reactjs - TypeError:无法读取未定义的属性(读取“地图”),以及 React.js 中的多个 API 请求
- excel - 从单元格引用中获取行号
- haskell - 制作在自身上运行其输入的函数时出现无限类型错误
- kubernetes - Argocd 使用高内存的原因
- flutter - 函数不会在 Bonfire 游戏引擎中将变量设置回 false
- swift - 如何在 SwiftUI 中使用 .refreshable 调用 API 并刷新列表
- python - 哪个命令用于从字符串中删除换行符
- java - Android:如何实现 Tik Tok 滑动 ViewPager2 功能?
- r - ggplot2 将我的所有数据点聚集到绘图的一端,在 geom_point() 之后不显示其他组件