Target主要用于识别Web页面的元素(少部分情况除外),在这种情况下,Target是一种定位表达式,其格式为“定位类型 = 定位值”,定位类型可省略。
1.identifier 定位
最常见的定位方式,如果没有定位类型,这是一种默认的方式。IDE会首先寻找首个id属性等于定位值得页面元素,没有找到就会寻找首个name属性等于定位值的页面元素,如果id和name都没有等于定位值的元素,那么定位就会失败。
2.id 定位
比identifier定位方式的搜索范围更精细,更具体。如果已经知道某个元素的id就可以使用这种方式,例id=loginForm。
3.name 定位
name定位方式将会识别首个name属性等于定位值的页面元素。如果多个元素的name属性都相同,可以使用过滤器进一步细化定位,默认的过滤器类型是value。
注意:与XPath定位和DOM定位不同,以上3中定位可以让selenium在
测试时执行不依赖UI元素在页面上的位置,当页面的结构发生变化时,测试依然能顺利执行。如果页面更改频繁,而又不得不进行回归测试,依赖id和name属性或其他任何HTML属性来进行定位的执行测试,就变得非常重要。
4.XPath 定位
XPath表达式用于在XML文档中定位节点,HTML可以看做XML的一种实现。通过XPath既可以使用元素绝对路径来定位元素,也可以像之前一样使用id或name属性,还可以使用其他任何属性来定位。
绝对路径的XPath表达式包含从根元素到指定元素的所有元素路径,因此对应用程序进行很轻微的改动,也可能引起测试不通过。相比之下,使用id或name属性来查找元素,或使用相对路径,比直接通过元素与元素之间的关系来查找元素要稳定的多。
如果XPath表达式以“//”开头,无需再包含“xpath=”
例:xpath=/html/body/from[1],采用绝对路径,轻微改动html,会导致测试不通过
5.链接文字定位
通过链接文字定位方式,只需简单提供链接文本就可以定位到对应的链接,如果有两个链接的文本相同,则会匹配第一个链接。
6.DOM 定位
DOM(Document Object Model)用于描述HTML文档,可以通过JavaScript进行访问,该定位方式需要JavaScript来计算出元素在页面上的位置,通过分级符号(.)可以轻松定位元素。只有DOM定位才会在开头使用“document”,所以“dom=”可以省略
例:dom=document.forms['loginForm']
document.forms[0].elements[3]
关于DOM更多:http://www.w3schools.com/HTMLDOM/dom_reference.asp
7.CSS 定位
CSS(Cascading Style. Sheets)是一种描述HTML和XML文档显示方式的语言。CSS使用选择器来为文档中的元素绑定样式属性。
例:css=from#loginForm
关于css更多:http://www.w3.org/TR/css3-selectors/
8.隐式定位
在遇到以下情况时,Target表达式中可以省略“定位类型”。
Target表达式没有指定明确的定位方式时,将默认使用identifier定位。
如果Target表达式以“//”开头,则会使用XPath定位。
如果Target表达式以“document”开头,则会使用DOM定位。