Firefox 配置文件首选项 vs Chrome 选项 vs IE 所需功能

2024-01-23

我已经看到(并且实际上回答了)几个特定于硒的问题,其中需要设置一些特定的浏览器首选项来更改其行为,例如:

  • 如何使用 Selenium 处理证书? https://stackoverflow.com/questions/24507078/how-to-deal-with-certificates-using-selenium
  • 如何使用 C# 将配置文件首选项添加到 Chrome for Selenium Grid 2? https://stackoverflow.com/questions/22200648/how-can-i-add-profile-preferences-to-chrome-for-selenium-grid-2-in-c
  • 如何使用 Chrome 和 FireFox JAVA 的 webdriver 禁用 cookie https://stackoverflow.com/questions/18106588/how-to-disable-cookies-using-webdriver-for-chrome-and-firefox-java
  • 可以禁用 Firefox 和 Chrome 默认缓存吗? https://stackoverflow.com/questions/8009823/possible-to-disable-firefox-and-chrome-default-caching

换句话说,有大量的问题可以分为两类:

  • 我知道如何在浏览器 X 中设置此首选项,如何在浏览器 Y 中执行相同的操作?
  • 如何通过配置浏览器 X、Y 和 Z 的首选项来执行某些操作?

这通常通过设置/配置来完成:

  • FirefoxProfile对于火狐浏览器
  • ChromeOptions适用于 Chrome
  • DesiredCapabilities对于 Internet Explorer

为特定问题找到特定于浏览器的解决方案的首选且最有效的策略是什么?有没有跨主要浏览器的偏好之间的映射?

例如,我发现要在 Firefox 中禁用缓存,我可以设置browser.cache.disk.enable, browser.cache.memory.enable, browser.cache.offline.enable and network.http.use-cache偏好false. How我可以知道如何在 Chrome 和 IE 中执行相同的操作吗?


为了强调我的意思将紧缩维基百科 http://en.wikipedia.org/wiki/Selenium_(software)文章到 1 句话:

Selenium网络驱动程序...is通过一个实施浏览器特定的浏览器驱动程序,其...旨在提供基本的构建块集开发人员可以从中创建自己的领域特定语言 http://en.wikipedia.org/wiki/Domain-specific_language.

为特定问题找到特定于浏览器的解决方案的首选且最有效的策略是什么?

而是尝试这样思考:如果特定浏览器实现了某个功能,那么 selenium 驱动程序很有可能会公开它。如果您可以手动解决它,您就知道该功能是否已实现。

我为您提供了相当有效的问题解决算法:CS || RTM || UTSL

  1. [CS]你能手动解决问题吗?尝试使用相同的步骤。
  2. [RTM]你能找到手册或示例吗?很可能其他人已经解决了你的问题。
  3. [UTSL] If common sense and RTM did not work, then
    • 手册可以告诉你怎么做应该管用.
    • 来源可以告诉你怎么做确实有效.

enter image description here Image is from Jeff Atwood https://stackoverflow.com/users/1/jeff-atwood blog post http://blog.codinghorror.com/learn-to-read-the-source-luke/.

主要浏览器之间的偏好之间是否存在映射?

No,偏好是未合并跨越司机。司机们有他们的具体细节和权衡 http://docs.seleniumhq.org/docs/03_webdriver.jsp#driver-specifics-and-tradeoffs.

不同的浏览器甚至浏览器版本支持不同的功能集。其中一些甚至缺乏常见的东西。 selenium 涵盖了其中一些功能,以便它能够提供其所具有的基本功能。例如,较旧的 IE 不支持 xPath,而 Selenium 必须模拟此行为。您不能假设它会添加行为来考虑每个浏览器中的每个怪癖以创建一个通用平台(这将是一个邪恶的问题)。

我建议你阅读棘手问题:解决棘手问题的策略 http://en.wikipedia.org/wiki/Wicked_problem#Strategies_to_tackle_wicked_problems.

知道如何在 Firefox 中禁用缓存,我怎么知道如何在...中执行相同的操作?

要在 Chrome 中执行相同操作,您可以运行 chrome 驱动程序--disable-application-cache争论。要查看您当前的 Chrome 可以设置哪些标志,您可以浏览到chrome://flags/内部镀铬。另一种方法是查找可用的source https://src.chromium.org/svn/trunk/src/chrome/common/chrome_switches.cc.

IE 的替代名称是怪癖的源泉。这是你需要进行研究的地方。一种方法是打电话RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess nr

Where nr is 旗场 http://en.wikipedia.org/wiki/Flag_field:

  • 255(删除所有历史记录)
  • 1(仅删除历史记录)
  • 2(仅删除 Cookie)
  • 8(删除临时互联网 仅文件)
  • 16(仅删除表单数据)
  • 32(仅删除密码历史记录)

这个来源 https://code.google.com/p/selenium/issues/detail?id=40声称截至 2013 年 5 月 IE 可能已经期望的能力.ensureCleanSession清除缓存,但我还没有测试过。

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

Firefox 配置文件首选项 vs Chrome 选项 vs IE 所需功能 的相关文章

随机推荐

  • 如何在 Python 中创建迭代器管道?

    是否有库或推荐的方法在 Python 中创建迭代器管道 例如 gt gt gt all items get created by location surrounding cities 我还希望能够访问迭代器中对象的属性 在上面的例子中 a
  • 每个类元素的简单 jquery .hover() 方法

    没做过太多jquery 遇到了问题 我想为所有具有 social tile 类的 div 绑定悬停事件 我这样做 function var social default social tile css margin right social
  • 在 VS 2012 中调试 javascript - 本地主机缓存有旧代码

    我开始构建一个 PhoneGap 应用程序 并决定使用 VS2012 作为编辑器 调试器 因为 Eclipse 和 XCode 不进行 javascript 调试 或者它们做 也许我错过了一些东西 并且 VS2012 有 js 的智能感知
  • 对 Lisp 引用感到困惑

    我有一个关于 lisp 中列表评估的问题 Why is a and a 1 未评价 defun test a a 1 就像 print 4 这里不评价 if lt 1 2 print 3 print 4 but print 2 3 在这里评
  • C# 类似于 VBA 中的 List

    我想创建一个List
  • Codenameone 中使用 split 方法时出错

    我创建了一个新的 Codenameone 项目 它包含以下代码 String values one two tree String v values split Codename One 支持 Java 5 的一个子集String spli
  • 使用 jQuery 调用 Sinatra 删除路由

    我对 Sinatra 还很陌生 正在制作一个利用基本 CRUD 功能的简单待办事项应用程序 在后端 我有工作路线并测试了所有内容 我想合并一些前端功能 并决定使用 jQuery 来帮助实现这一点 我在 jQuery 中有一段当前代码 当单击
  • 具有自定义对象的可过滤适配器

    我想将自动完成文本框添加到 xamarin android 中的列表视图 自定义对象 中 我有一个列表视图 它是从字符串数组填充的 我想使用自定义对象填充我的列表视图 下面的代码适用于字符串数组 任何帮助实现我的自定义对象适配器都会有所帮助
  • 如何更改两层的 ggplot 图例标签和名称?

    我正在使用 ggmap 和 ggplot 包绘制圣保罗地图中两个不同数据帧的经度和纬度坐标 并希望手动标记每个图例图层 更新 我编辑了下面的代码以使其完全可重现 我使用的是地理编码函数而不是 get map 更新 我想在不合并数据帧的情况下
  • addTooltip 间歇性地使用observeEvent 中的两个输入

    我正在构建一个闪亮的应用程序来绘制网络 用户可以选择一个节点 单击切换按钮以显示该节点的自我网络 然后单击相同的按钮返回主网络 我试图获得一个工具提示 将鼠标悬停在按钮上 其中的文本会根据按钮本身的状态以及是否选择节点而变化 问题是工具提示
  • Google Apps 脚本:一天内调用服务次数过多:电子邮件

    我正在尝试循环浏览电子表格 并为每一行发送一封电子邮件 电子邮件发送后 我想删除该行 然而那是行不通的 由于某种原因 它开始疯狂地发送电子邮件 并在某个时候达到限制并退出 它实际上只删除一行 请参阅下面的代码 function sendEm
  • Fortran 与 C++ 相比,如今 Fortran 在数值分析方面是否仍然具有优势? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 随着C 编译器 尤其是intel编译器 的快速发展 以及在C C 代码中直接应用SIMD函数的能力 Fortran在数值计算领域是否仍然具有真正
  • 如何在 App.config 中设置 SQLCommandTimeout

    我已经使用 SQL 数据库开发了一个 Window 服务 目前我的数据库中充满了记录 因此查询执行需要很长时间 而默认命令超时为 30S 但我想将其增加到 120S 一个选项是 com CommandTimeout 120 但我的应用程序中
  • Java 方法中的动态返回类型

    我在这里多次看到类似的问题 但有一个很大的区别 在其他问题中 返回类型由参数确定 我想要 需要做的是通过解析的值确定返回类型byte 根据我收集的信息 以下方法可能有效 public Comparable getParam String p
  • 为什么 _mm_stream_ps 会产生 L1/LL 缓存未命中?

    我正在尝试优化计算密集型算法 但遇到了一些缓存问题 我有一个巨大的缓冲区 它偶尔会随机写入 并且在应用程序结束时只读取一次 显然 写入缓冲区会产生大量缓存未命中 并且还会污染随后再次需要进行计算的缓存 我尝试使用非时间移动内在函数 但缓存未
  • Chrome 中页面加载时的 Popstate

    我正在为我的网络应用程序使用 History API 但遇到一个问题 我执行 Ajax 调用来更新页面上的一些结果并使用history pushState 为了更新浏览器的地址栏而不重新加载页面 然后 当然 我用window popstat
  • Javascript / jQuery - 点击 iPhone 上的元素外部

    我在这个问题中找到了一个关于检测 div 外部点击的很好的答案 如何检测元素外部的点击 https stackoverflow com questions 152975 how to detect a click outside an el
  • 使用之间的区别?和 :prepare 语句中的参数

    假设我想选择记录Id 30 准备好的语句允许两种绑定参数的方式 问号 id 30 q conn gt prepare SELECT FROM pdo db WHERE id gt q gt execute array id Here abo
  • 子div比父div大

    计划是使子 div 与父 div 中的空间一样大 是否可以选择将父级 div 的完整高度应用到子元素上 我只知道 css calc 作为一个选项 但我不想实现这个选项 另外我在图像中解释了这个问题 parent height 250px w
  • Firefox 配置文件首选项 vs Chrome 选项 vs IE 所需功能

    我已经看到 并且实际上回答了 几个特定于硒的问题 其中需要设置一些特定的浏览器首选项来更改其行为 例如 如何使用 Selenium 处理证书 https stackoverflow com questions 24507078 how to