Selenium 使用 Firefox 配置文件

2024-02-27

我尝试在 Windows 10 系统上使用 Selenium Webdriver 和 Python 来实现浏览器操作的一些自动化。但我有这个问题:Selenium 启动的 Firefox 窗口没有“看到”我已经登录,并且目标站点将我发送到登录页面。所以我假设 Selenium 并没有真正使用该配置文件,而只是它的副本。

我想知道:

  1. 我关于实际使用个人资料副本的结论是否属实?
  2. 如果 1. 为真,是否有办法使用现有配置文件中的所有内容?
  3. 如果我的结论不正确,请证明它并指出我可以找到哪些信息可用于会话的方向,为什么 Selenium 可能无法发送它以及如何强制它实际上这样做。

Edit:

from selenium import webdriver
fp = webdriver.FirefoxProfile('C:/Users/<user name>/AppData/Roaming/Mozilla/Firefox/Profiles/abc3defghij2.ProfileName')
driver = webdriver.Firefox(fp)
driver.get("https://www.example.com/membersarea")

Selenium 确实使用了配置文件的副本,尽管这应该不会引起任何问题。我认为您的问题更多地与会话 cookie 和持久 cookie 有关。

On 支持.mozilla.org https://support.mozilla.org/en-US/kb/profiles-where-firefox-stores-user-data#w_what-information-is-stored-in-my-profile是一个列表,指示您的个人资料中实际存储了哪些信息。但请注意,cookie 也在其中会话cookie https://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie不存储在 cookies.sqlite 中,这就是 Selenium 无法重建会话的原因,因为它没有出现在配置文件中。

然而,许多网站都提供remember-me or a stay-logged-in登录页面上的选项,如果使用,将存储一个持久的 cookie,通过该 cookie 可以恢复会话。我使用以下脚本通过 gmail 进行测试,

from selenium import webdriver

url = "https://mail.google.com"
fp = webdriver.FirefoxProfile('/Users/<username>/Library/Application Support/Firefox/Profiles/71v1uczn.default')

driver = webdriver.Firefox(fp)
driver.get(url)

当我使用以下命令登录 gmail 后运行此脚本时stay-logged-in启用选项,然后 Selenium 就可以访问我的收件箱。如果stay-logged-in选项未启用,会话在关闭浏览器时被破坏,因此 Selenium 也无法恢复它。

下面的屏幕截图显示会话cookie确实没有存储在cookies.sqlite中,因此当Selenium使用时不会出现在配置文件中。

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

Selenium 使用 Firefox 配置文件 的相关文章

随机推荐

  • Rshinyjsshinydashboard框在操作按钮输入时展开

    在我闪亮的应用程序中 当应用程序启动时 我有几个框会折叠 单击操作按钮后 将运行计算 然后框应展开并显示结果 这是我正在使用的示例代码 但它不会展开该框 我从这里得到了 jscode 的代码如何手动折叠闪亮仪表板中的框 https stac
  • 通过id获取元素当前高度

    我有一个元素如下 div style width 20 div div style width 80 div 本质上 导航位于左侧 内容位于右侧 现在我正在动态调整两者的大小loadContent and loadNavigation页面加
  • 函数参数常量是否允许不匹配?

    关于using const功能参数 https stackoverflow com questions 117293 use of const for function parameters我听说在某些 OS X 系统上参数的常量性被破坏到
  • Twitter 引导程序更改词缀偏移量

    我有一个想要 子导航 的网站 因此 当您滚动到部分时 其工具栏将固定在主工具栏下方 我可以正常工作 但初始化后无法更改顶部偏移量 文档说 贴上 刷新 将词缀与添加或删除元素结合使用时 从 DOM 中 您需要调用刷新方法 但是当我尝试这个时我
  • WPF Richtextbox FontFace/FontSize

    我目前正在尝试在 WPF 项目中创建一些基本的文字处理功能 我正在使用 RichTextBox 并且知道所有的 EditingCommands ToggleBold ToggleItalic 等 我所坚持的问题是允许用户更改字体大小和字体
  • Internet Explorer 10/11 和旧的 .net Framework 1.1 网站的兼容性问题

    场景 我有一个用 net 框架1 1 开发的非常旧的网站 该网站在 Internet Explorer 10 11 中存在多个问题 可以使用兼容性视图进行修复 问题 问题是框 架 1 1 无法将 Internet Explorer 10 1
  • Eclipse 抽象语法树差异

    在 Eclipse 中给出以下代码 import org eclipse jdt core dom AST import org eclipse jdt core dom ASTParser import org eclipse jdt c
  • 递归包含所有模型子目录

    如何递归加载 models 和 lib 目录中的所有目录 在 application rb 中 我有以下几行 config autoload paths Dir Rails root join app models config autol
  • Xcode:UI 自动化:waitForValid()

    有一个 waitForInvalid 但 waitForValid 函数呢 由于某种原因 push popTimeout 在很多情况下对我不起作用 苹果 如果元素是 有效 但不是 可见 则可能返回得太早 这应该等到其可见且有效 UIATar
  • Firestore 添加文档 ||离线||回调[重复]

    这个问题在这里已经有答案了 期间未收到在集合中添加文档的回调offline 它在在线模式下运行良好 但是 文档正在被添加 并且侦听集合的侦听器正在被添加document快照 let database Firestore firestore
  • 带有外部第三方 jar 的 Eclipse 插件

    我有一个 RCP 应用程序 其中包含不同的插件 在其中一个插件中 我使用外部第三方 jar 由于版权原因 我无法将该 jar 捆绑到我的产品中 所以我尝试在运行时将 jar 作为外部 jar 包含在内 我所做的如下 在插件manifest
  • 为什么mysql无法创建新用户?

    mysql gt select user host from mysql user user host root 127 0 0 1 root 1 debian sys maint localhost developer localhost
  • 使用 QT 读取 Linux/Ubuntu 上的电池状态

    我目前正在使用 qt 开发一个应用程序 目标是运行 ubuntu 14 04 的平板电脑 由于设备上的电池指示器很差 并且应用程序将长时间全屏运行 因此我想在应用程序内显示电池指示器 搜索发现主要是旧结果或对 windows android
  • 找不到元素“context:annotation-config”的声明

    每当我写作时 春天
  • Highcharts,使 y 轴从零开始

    我想这对某些人来说应该是理所当然的 但我在那些可怕的自动生成的文档中找不到它 您应该在图表对象中添加 yAxis 属性min 0这是一个类似的问题 如何设置 Highcharts 图表最大 y 轴值 https stackoverflow
  • 让Git在分支之间保留不同的section内容

    我正在开发一个用户脚本 我的雇主要求我开始通过 Git 进行管理 现在 我有一个稳定文件和一个测试版文件 以便组织中的每个人都可以安装稳定代码 但如果愿意 可以选择帮助测试测试版添加内容 该文件的某些部分应保持不同 内容和更改不应在分支之间
  • 使用 pandoc ruby​​ 将 HTML 和内联 Mathjax 数学转换为 LaTeX

    我正在构建一个Rails应用程序 并且正在寻找一种方法将带有html和内联MathJax数学 TeX 的数据库条目转换为LaTeX以创建pdf 我发现了和我类似的问题 使用 pandoc 将 html mathjax 转换为 Markdow
  • 这个==- JavaScript 运算符是什么?

    当我发现时 我跌跌撞撞地尝试不同的条件 or 在 JS 控制台中 您可以编写 var a 那么以下是正确的 a 但这是错误的 a 然而 如果你说 a or a 那么这是什么俏皮的东西 操作员 他们不是不同的运营商 Writing a 被解析
  • 使用 XAMPP 包在本地显示 php 站点时出现问题。站点在远程服务器上运行良好

    我在 stackoverflow com 上发表的第一篇文章 一个很棒的网站 我希望我的帖子能为他人的利益做出贡献 情况 我受委托翻新一处really小型 现有 php 驱动的网站 于是 我开始搭建我的环境 Dreamweaver 已安装
  • Selenium 使用 Firefox 配置文件

    我尝试在 Windows 10 系统上使用 Selenium Webdriver 和 Python 来实现浏览器操作的一些自动化 但我有这个问题 Selenium 启动的 Firefox 窗口没有 看到 我已经登录 并且目标站点将我发送到登