Selenium:指向默认 Chrome 会话

2024-03-19

虽然我意识到这不是“好的”做法 - 我有一个用例,我需要将 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 版本Chrome驱动程序74.0.3729.6 https://chromedriver.storage.googleapis.com/index.html?path=74.0.3729.6/(这是兼容版本)。

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

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

我看过另一个question https://stackoverflow.com/questions/50635087/how-to-open-a-chrome-profile-through-user-data-dir-argument-of-selenium,但是那里的答案未能解决如何将 Selenium 指向默认会话。另外 - 这是一个过时的问题 - Chrome 和 Chromedriver 从那时起已经取得了很大的进步。另外,那里的问题假设海报能够连接到默认会话 - 我无法做到这一点,这表明 Chromedriver/Chrome 从那时起已经发生了变化。另外这个问题是针对 Windows 的 - 我使用的是 Mac,其工作方式有所不同。


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

我使用的是 windows,但你的 mac 情况也应该类似。

参考这个链接 https://chromium.googlesource.com/chromium/src/+/master/docs/user_data_dir.md了解更多信息。

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

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

参考:

http://chromedriver.chromium.org/capability http://chromedriver.chromium.org/capabilities

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium:指向默认 Chrome 会话 的相关文章

随机推荐

  • 同构弦

    给定两个字符串 s 和 t 确定它们是否同构 如果 s 中的字符可以替换得到 t 则两个字符串是同构的 所有出现的字符都必须替换为另一个字符 同时保留字符的顺序 任何两个字符都不能映射到同一个字符 但一个字符可以映射到其自身 例如 给定 e
  • 如何在magento中调用另一个动作?

    是否可以在magento中调用另一个动作 例如 让我们考虑两种操作方法 添加动作 更新操作 调用 addAction 时是否可以实际调用 updateAction 谢谢 巴兰 您可以进行转发 例如 public function addAc
  • Objective-C 中的自动解析库 - [自动 XML/JSON 到对象转换]

    Objective C 中是否有一个我可以在 iPhone 中使用的库 在其中我可以提前告诉库这些标签应该在 xml 文件中出现 然后该库会自动为我解析它并给我一个 NSDictionary 数组作为回报或类似的东西 简而言之 我正在寻找一
  • 为什么本机 python 列表上的 for 循环比 numpy 数组上的 for 循环更快

    我正在阅读介绍 numpy 的章节高性能Python并在我自己的计算机上使用了代码 我无意中用 for 循环运行了 numpy 版本 发现与本机 python 循环相比 结果出奇地慢 代码的简化版本如下 其中我定义了一个值为 0 的二维数组
  • 如何使用 Chrome 扩展程序阻止某些网站?

    我正在为一个项目制作一个简单的 chrome 扩展 我正在制作一个扩展程序来阻止某些 URL 社交媒体等 以使学习更加高效 我不太擅长JS 但我想学习 我有一些想法 也许它可以阻止网站 或者只是在 div 中绘制一些内容来阻止其内容 另外
  • 如何设置PDF页眉的高度?

    有谁知道如何设置生成的pdf中标题的高度
  • x64应用程序访问mdb数据库

    我有一个应用程序需要在x64平台下构建 我需要访问 mdb文件 我所说的访问是指插入 删除或更新数据库 我在使用 Jet OLE db 和 ODBC 驱动程序时遇到问题 对于 OLE db 它显示 Jet Oledb 未注册 驱动程序和应用
  • Haskell 的全功能 CSV 解析器?

    任何人都可以推荐一种解析 CSV 文件的方法 其中包含以下选项 设置单元格 字段分隔符 设置记录结尾 行终止符 为字段设置引号字符 支持 UTF 8 字符串 能够将内存中的 CSV 结构写回文件 我确实尝试过 Text CSV 但它非常简单
  • D3 力向图添加新节点导致 x & y 为 NaN

    当我单击一个节点时 我希望向其中添加一个新节点 它们都应该有标签 我正在尝试构建同义词库可视化 我对 D3 还很陌生 所以如果您需要更详细地解释一些事情 我深表歉意 到目前为止 这是我的代码 var width 960 var height
  • 如何防止在 C# 中手动输入组合框

    我有一个 C 表单 它使用ComboBox 如何防止用户手动输入文本ComboBox in C this comboBoxType Font new System Drawing Font Arial 15 75F this comboBo
  • 未调用 UIManagedDocument saveToURL finishHandler - 错误消息:“不允许读者访问该 URL。”

    我有一个旧的应用程序使用UIManagedDocument与核心数据交互 然而 在 iOS 11 2 可能还有更早的 iOS 11 版本 上saveToURL forSaveOperation completionHandler 方法似乎已
  • 将文件扩展名与程序关联

    我知道怎么做 而且我去过http www codeproject com KB vb VBFileAssociation aspx http www codeproject com KB vb VBFileAssociation aspx前
  • 在python中将pdf转换为docx格式

    请问如何将pdf转换为docx 我尝试使用 pdfminer 转换为 html 来提取文本 但看起来仍然不够好 pdf2docx 安装pdf2docx包点击here https github com dothinking pdf2docx
  • Dialogflow动态实体问题

    我正在尝试使用 Dialogflow api ai 创建一个 Actions on Google 应用程序 我需要获取火车状态 所以我的实体将是火车号码或火车名称 火车的名字有很多 所以我无法手动添加实体值 如何将实体值动态添加到控制台 您
  • Spring WebFlux Webclient 作为 Mono 接收应用程序/八位字节流文件

    我正在 Kotlin 中制作一个小型 Spring WebFlux 应用程序的原型 该应用程序需要从远程 REST 端点获取 tar 存档并将其存储在本地磁盘上 听起来很简单 我首先创建了一个集成测试 该测试启动 Spring 服务器和另一
  • NHibernate Definitive Cascade 应用指南

    是否有任何互联网资源对 NHibernate 的所有级联设置提供明确的指南 其中包括类结构 HBM 以及每个级联设置的操作对与 NH 的所有关系的影响的示例 此外 如果有以最正确的方式完成常见关联的示例 例如设置一个状态表 您将永远不会最终
  • 沸腾的 MSYS shell - 它可以更换吗?

    我需要一个适用于 MSYS 的可用外壳 这是我目前的困境 默认的 rxvt exe 有一个滚动条以及复制和粘贴功能 但不会将控制字符或箭头键发送到 shell 中正在运行的程序 如解释器 调试器 当使用 Haskell 解释器 ghci 时
  • ASP.NET MVC - ID 字段的自定义模型绑定器

    我有以下实体 public class Category public virtual int CategoryID get set Required ErrorMessage Section is required public virt
  • GitoLite 和 Git 可以使用 LDAP 而不是 SSH 密钥吗

    我的公司正在考虑使用 git 和 gitolite 但不想使用 SSH 密钥 而是像使用 LDAP 一样工作 这可以做到吗 我从来没有见过这样做 我在每个地方都有这个设置 并且总是使用 SSH 密钥 是的 您可以毫无问题地做到这一点 你只需
  • Selenium:指向默认 Chrome 会话

    虽然我意识到这不是 好的 做法 我有一个用例 我需要将 Selenium 驱动程序指向 连接 到我的默认 Chrome 会话 配置文件 我的默认配置文件在这里 Library Caches Google Chrome Default 这是我