Selenium RC中的定位器偏好

时间:2011-06-07 12:42:44

标签: selenium selenium-rc

在编写selenium脚本时我需要帮助选择定位器...

使用XPath,CSS,标识符有什么区别? XPath 比其他人更受欢迎吗?如果是这样,为什么?

6 个答案:

答案 0 :(得分:3)

您应该尝试选择定位器的顺序按以下顺序

  1. ID
  2. 名称
  3. CSS
  4. XPATH
  5. ID和Name将有助于创建良好的可维护测试,因为可以在不破坏测试的情况下更改元素类型。例如,如果您点击<input type=button id='foo'>并且已更改为<div id='foo'>Bar</div>,那么只要下一步发生的操作仍处于相同的顺序,您的测试仍然可以正常工作

答案 1 :(得分:1)

Xpath通常很慢,特别是在IE中。并非所有浏览器都支持CSS选择器,特别是IE(在这里看到趋势?)。通常使用名称或id选择器,因为这些是快速的,并使用xpath选择器进行备份。编写好的xpath选择器是一项技能,如果你注意到它导致你的测试开始减慢很多,你可以回去并优化选择器。

答案 2 :(得分:1)

CSS可以选择执行速度和可读性/可维护性。此外,CSS定位器可能在迭代环境中见证了最少量的更改(而不是更改链接名称,标题等)。使用CSS的唯一缺点是IDE内部缺乏内置支持来制定它们。

Here是一篇很好的文章,阐明了为什么CSS是首选的定位器:)

答案 3 :(得分:0)

虽然其他三个答案都提供了有关您问题各方面的重要信息,但仍有一种资源可能会对您有所帮助。我最近整理了一本菜谱和比较图表,涵盖了Selenium支持的所有定位器技术:这个快速参考文字让你看到“......使用XPath,CSS,标识符之间的差异”等等。请参阅Simple-Talk.com上的XPath, CSS, DOM and Selenium: The Rosetta Stone

答案 4 :(得分:0)

嗨,只是为了增加一点, 1)。 ID或NAME是浏览器的原生ID,其他所有CSS,XPATH,Javascript对浏览器来说都是陌生的(即......它们必须依赖于各自的引擎)。所以本地人永远是第一选择。 2)。你不能利用CSS或XPATH的所有功能(即不同版本的CSS或XPATH的浏览器支持问题)。 3)。 XPATH在IE7中存在问题。 (所以我只使用CSS编写每个元素位置路径) 4)。 IE7有时无法找到非常基本的CSS路径(css = table.nav td.name),因此我不得不将其更改为javascript编码(dom = document.findElementsByTagName('td')[0])

答案 5 :(得分:0)

选择定位器的顺序应为:

  1. Id:如果Web应用程序遵循W3C准则,您将只获得页面上的单个元素。因此,搜索元素的速度将是最高的。
  2. 名称
  3. 链接文字
  4. 部分链接文字
  5. 标记名称
  6. 班级名称
  7. CSS选择器
  8. Xpath的