Selenium RC中的定位器偏好

Selenium RC中的定位器偏好,selenium,selenium-rc,Selenium,Selenium Rc,我需要在编写selenium脚本时选择定位器的帮助 使用XPath、CSS和标识符之间有什么区别? XPath是首选的吗?如果是这样,为什么?Xpath通常速度较慢,尤其是在IE中。并非所有浏览器都支持CSS选择器,尤其是IE(这里有趋势吗?)。通常在可以的地方使用名称或id选择器,因为它们很快,在不能的地方使用xpath选择器进行备份。编写好的xpath选择器是一项技能,如果您注意到它导致您的测试开始慢下来,您可能会返回并优化选择器。xpath通常慢,特别是在IE中。CSS选择器在所有浏览器中

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

使用XPath、CSS和标识符之间有什么区别?
XPath是首选的吗?如果是这样,为什么?

Xpath通常速度较慢,尤其是在IE中。并非所有浏览器都支持CSS选择器,尤其是IE(这里有趋势吗?)。通常在可以的地方使用名称或id选择器,因为它们很快,在不能的地方使用xpath选择器进行备份。编写好的xpath选择器是一项技能,如果您注意到它导致您的测试开始慢下来,您可能会返回并优化选择器。

xpath通常慢,特别是在IE中。CSS选择器在所有浏览器中都不受支持,尤其是IE(看到趋势了吗?)。通常在可以的地方使用名称或id选择器,因为它们很快,在不能的地方使用xpath选择器进行备份。编写好的xpath选择器是一项技能,如果您注意到它导致您的测试开始慢下来,您可能可以返回并优化选择器。

CSS将是我在执行速度和可读性/可维护性方面的选择。此外,CSS定位器可能在迭代环境中看到最少的更改(与更改链接名称、标题等相反)。使用CSS的唯一缺点是IDE中缺乏对CSS的内置支持


这篇文章很好地解释了为什么CSS是首选的定位器:)

CSS将是我在执行速度和可读性/可维护性方面的选择。此外,CSS定位器可能在迭代环境中看到最少的更改(与更改链接名称、标题等相反)。使用CSS的唯一缺点是IDE中缺乏对CSS的内置支持


这是一篇很好的文章,解释了为什么CSS是首选的定位器:)

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

  • 身份证
  • 名字
  • CSS
  • XPATH

  • ID和Name将有助于创建良好的可维护测试,因为可以在不破坏测试的情况下更改元素的类型。例如,如果您单击了一个
    ,而它被更改为
    ,那么您的测试仍然可以工作,只要接下来发生的事情仍然按照相同的顺序进行

    您应该尝试拾取定位器的顺序如下

  • 身份证
  • 名字
  • CSS
  • XPATH

  • ID和Name将有助于创建良好的可维护测试,因为可以在不破坏测试的情况下更改元素的类型。例如,如果你点击了一个
    ,而它被改为
    ,那么你的测试仍然可以工作,只要接下来发生的事情仍然按照相同的顺序进行

    ,而其他三个答案都提供了关于你问题各个方面的重要信息,那么还有一个资源你可能会觉得有用。我最近整理了一本食谱和一个比较图表,涵盖了Selenium支持的所有定位器技术:这个快速参考让您可以看到“…使用XPath、CSS、标识符之间的区别”等等。请参见Simple Talk.com。

    虽然其他三个答案都提供了有关您问题各个方面的重要信息,但还有一个资源可能会对您有所帮助。我最近整理了一本食谱和一个比较图表,涵盖了Selenium支持的所有定位器技术:这个快速参考让您可以看到“…使用XPath、CSS、标识符之间的区别”等等。请访问Simple Talk.com。

    你好,再补充一点, 1). 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])

    Hi, 1). 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])

    选择定位器的顺序应该是:

  • Id:如果web应用程序遵循W3C指南,那么您将在页面上只获得单个元素。因此,搜索元素的速度将是最高的
  • 名字
  • 链接文本
  • 部分链接文本
  • 标签名
  • 类名
  • CSS选择器
  • Xpath

  • 选择定位器的顺序应为:

  • Id:如果web应用程序遵循W3C指南,那么您将在页面上只获得单个元素。因此,搜索元素的速度将是最高的
  • 名字
  • 链接文本
  • 部分链接文本
  • 标签名
  • 类名
  • CSS选择器
  • Xpath

  • “使用CSS的唯一缺点是缺乏IDE内部对它们的支持。”-我认为Selenium IDE 1.11支持CSS:)。祝你考试愉快。显然我需要升级;)TBH我不会使用IDE来创建定位器,它们通常都很糟糕。。。我通常用Java创建一个带有helper方法的框架,并使用firebug或googlechrome等工具手工编写所有选择器webtools@Tnem同意。但有时IDE是免费的