为了强调我的意思将紧缩维基百科 http://en.wikipedia.org/wiki/Selenium_(software)文章到 1 句话:
Selenium网络驱动程序...is通过一个实施浏览器特定的浏览器驱动程序,其...旨在提供基本的构建块集开发人员可以从中创建自己的领域特定语言 http://en.wikipedia.org/wiki/Domain-specific_language.
为特定问题找到特定于浏览器的解决方案的首选且最有效的策略是什么?
而是尝试这样思考:如果特定浏览器实现了某个功能,那么 selenium 驱动程序很有可能会公开它。如果您可以手动解决它,您就知道该功能是否已实现。
我为您提供了相当有效的问题解决算法:CS || RTM || UTSL
-
[CS]你能手动解决问题吗?尝试使用相同的步骤。
-
[RTM]你能找到手册或示例吗?很可能其他人已经解决了你的问题。
-
[UTSL] If common sense and RTM did not work, then
- 手册可以告诉你怎么做应该管用.
- 来源可以告诉你怎么做确实有效.
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清除缓存,但我还没有测试过。