2、Id定位
Id定位技术相比identifier技术扩大了限制范围,要求被定位元素必须明确指定其id属性值,但使用起来更直接。Id定位技术中locatorType的被指定为id。以图2.12的HTML页面为例,若使用id定位,则只能定位到第三行id属性值为loginForm的form标签元素。具体的定位方法是如表2.4所示:
表2.4 Id定位实例
行号 定位元素 Name定位方式 匹配类型
4 input name=username 按name属性匹配
7 input name=continue value=Reset 按name属性匹配,value属性过滤
7 input name=continue Reset 按name属性匹配,默认value属性过滤
7 input name=continue type=button 按name属性匹配,type属性过滤
4、DOM元素定位
DOM(Document Object Model)文档对象模型用来表示HTML文档,JavaScript脚本语言中,使用通过分层点标记的方法即可使用DOM定位技术对页面元素进行定位,其locatorType被指定为document,使用中“document=”可以省略。DOM元素定位的具体实例如表2.5所示:
表2.5 DOM元素定位实例
行号 定位元素 DOM元素定位方式
3 form dom=document.getElementById(‘loginForm’)
3 form dom= document.forms[0]
3 form dom= document.forms[‘loginForm’]
4 input document.forms[0].username
4 input document.forms[0].elements[0]
4 input document.forms[0].elements[‘username’]
5、XPath定位
XPath是XML文档中的一种元素定位语言。由于HTML可以实现XML,在Selenium中也支持XPath这种功能强大的定位技术来定位AUT页面中的元素。XPath主要基于但不局限于用id属性和name属性对元素进行定位,在动态页面中,元素的id和name属性值动态生成的情况下,该技术可以提供一种优秀的元素定位解决方案。
XPath定位技术中,根据元素在HTML文档结构的位置,分为绝对XPath和相对XPath定位两种定位方式。在绝对XPath中,把<html>元素作为页面的元素的root(根),根据定位元素与root之间的位置进行定位,若HTML界面的修改频繁,这种绝对XPath在定位时比较困难。在相对XPath中,指定HTML页面的某一个元素作为参照点,根据定位元素与参照点的相对位置进行定位,这种方式比绝对XPath更灵活。XPath定位方式的locatorType指定为xpath,使用中“xpath=”可以省略,相对路径中locator以“//”开始,所有元素的索引下标从1开始。XPath定位的具体实例如表2.6所示:
表2.6 XPath定位实例
行号 定位元素 XPath定位方式 说明
3 form xpath=/html/body/form[1] 绝对XPath定位
3 form //form[1] 相对XPath,定位文档中第一个form
3 form xpath=//form[@id=’loginForm’] 相对XPath,定位文档中的id属性为loginForm的form
4 input //form[input/\@name=’username’] 定位文档中form标签内name属性为username的input元素
4 input //input[@name=’username’] 定位name属性为username的input标签
4 input //form[@id=’loginForm’]/input[1] 定位id属性为loginForm的form下的第一个input元素 基于FitNium的Web关键字驱动的测试(7):http://www.youerw.com/jisuanji/lunwen_8907.html