回答
CSS将成为我在执行速度和可读性/可维护性方面的选择。此外,CSS定位器可能会在迭代环境中见证最少的变化(与更改链接名称,标题等相反)。使用CSS的唯一缺点是缺少IDE内部支持来制定它们。
Here是一个伟大的职位阐明为什么CSS是选择:)
Xpath一般很慢,特别是在IE中。所有浏览器都不支持CSS选择器,尤其是IE浏览器(看到这里的趋势?)。通常使用名称或ID选择器,因为这些名称或ID选择器速度较快,并且使用xpath选择器进行备份,但不能。编写好的xpath选择器是一种技巧,如果你注意到它会导致你的测试开始放慢速度,你可能会返回并优化选择器。
的顺序,你应该尝试挑定位器是按以下顺序
- ID
- 名称
- CSS的定位
- XPATH
ID和Name将有助于创建良好的可维护测试,因为可以在不中断测试的情况下更改元素的类型。例如,如果你点击了一个<input type=button id='foo'>
并得到了改变,以<div id='foo'>Bar</div>
那么你的测试将仍然工作,只要接下来发生的事情仍然是相同的顺序
而其他三个答案thusfar所有提供方面的重要信息你的问题,还有一个资源,你可能会发现有帮助。我最近编写了一本食谱和比较图表,内容涵盖了Selenium支持的所有定位技术:这个快速参考字面上可以让你看到“...使用XPath,CSS,标识符之间的差异”等等。请参阅Simple-Talk.com上的XPath, CSS, DOM and Selenium: The Rosetta Stone。
嗨刚刚添加更多, 1)。 ID或NAME是浏览器原生的,所有其他CSS,XPATH,Javascript对浏览器来说都是外来的(也就是说,他们必须依赖各自的引擎)。所以本土永远是第一选择。 2)。你不能使用CSS或XPATH的所有功能(即:不同版本的CSS或XPATH的浏览器支持问题)。 3)。 XPATH在IE7上存在问题。 (所以我只写了每个元素的位置路径) 4)。 IE7无法找到非常基本的CSS路径有时(css = table.nav td.name),所以我不得不将其改为javascript编码(dom = document.findElementsByTagName('td')[0])
订单选择定位器应该是:
- Id:如果Web应用程序遵循W3C准则,您将只能获得页面上的单个元素。因此,搜索元素的速度将是最高的。
- 名称
- 链接文本
- 部分链接文本
- 标签名称
- 类名
- CSS选择器
- Xpath的
- 1. Selenium RC Server:userContentTransformation选项支持哪些正则表达式选项?
- 2. Python为Selenium设置Firefox首选项 - 下载位置
- 3. Python Selenium设置多个Chrome首选项
- 4. 如何在Selenium RC中访问与xpath的非首次匹配?
- 5. javascript in selenium RC
- 6. Selenium RC Referer header
- 7. Selenium RC in Hudson
- 8. 如何使用Selenium Webdriver .NET绑定来设置Chrome首选项?
- 9. 了解Selenium IDE和Selenium RC
- 10. Selenium RC - selenium-browserbot.js错误
- 11. Selenium定位器中的CSS定位器空间
- 12. XPath定位器与Selenium中的JQuery定位器
- 13. Selenium RC浏览器发射器列表
- 14. Selenium:搜索Java中的定位器子项
- 15. Android中首选项活动中的数字首选项
- 16. Java首选项管理器
- 17. Android自定义首选项
- 18. 首选项被锁定
- 19. Jacoco w/Jetty + Selenium RC
- 20. chooseCancelOnNextConcirmation alternative in Selenium RC
- 21. Selenium RC WaitForPageToLoad挂起
- 22. Selenium RC Jmeter C#LoadTesting
- 23. Selenium RC和Internet Explorer
- 24. Selenium RC htmlsuite错误
- 25. Selenium RC(java)+ Safari3 + XP
- 26. Selenium RC -htmlsuite错误
- 27. CF首选项/库/首选项
- 28. selenium:使用xpath定位器的自定义定位器
- 29. 设置Chrome首选项,在Python中使用Selenium Webdriver
- 30. Android:如何更改首选项中的选定项目颜色?
“唯一的缺点使用CSS是缺乏在IDE内部为内部支持提供支持。“ - 我认为Selenium IDE 1.11支持CSS :)。开心测试 – 2011-06-07 13:27:06
谢谢。显然我需要升级;) – rs79 2011-06-07 13:32:53
TBH我不会使用IDE来创建定位器,但它们通常都很糟糕......我通常使用帮助器方法在Java中创建一个框架,并使用像萤火虫这样的工具手动编写所有选择器或谷歌浏览器webtools – Tnem 2011-06-07 13:34:55