元素定位
对于web自动化测试来说,就是操作页面的各种元素,在操作元素之间需要先找到元素,换句话说就是定位元素。
Selenium2Library提供了非常丰富的定位器:
虽然提供了这么多种定位方式,并不是要求我们每一种都要学会,平时主要用的定位方式:id, name,xpath, css
1、id和name定位:
假如把一个元素当作一个的话,id和name可以看作一个人的身份证号和姓名,当然,这些属性值是否唯一要看前端工程师如何设计了。
如百度输入框可以根据id或name进行定位
input text id=kw hello,world!
input text name=wd hello,reobotframework
click button id=su
2、xpath定位:
xpath是一种在xml文档中定位元素的语言,因为html可以看做xml的一种实现,所以selenium用户可以使用这种强大语言在web应用中定位元素。
xpath定位元素办法:
1)xpath的绝对路径:
xpath = /html/body/div[1]/div[4]/div[2]/div/form/span[1]/input
我们可以从最外层开始找,html 下面的body 下面的div 下面的第4 个div 下面的....input 标签。通过一级一级的锁定就找到了想要的元素。
2)xpath的相对路径:
绝对路径的用法往往是在我们迫不得已的时候才用的。大多时候用相对路径更简便。
A.xpath元素本身:
xpath同样可以利用元素自身的属性,如xpath=//*[@id='kw']
//表示某个层级下,* 表示某个标签名。@id=kw 表示这个元素有个id 等于kw 。
当然也可以定制标签名,如:Xpath = //input[@id=’kw1’]
元素本身,可以利用的属性不局限为id和name,如:
Xpath = //input[@type=’text’]
Xpath = //input[@autocomplete=’off’]
但要保证这些元素可以唯一的识别一个元素。
B.找上级
如:
元素的上级属性为:
<form id="form1" class="fm" action="/s" name="f1">
<span class="bg s_ipt_wr">
<input id="kw1" class="s_ipt" type="text" maxlength="100" name="wd" utocomplete="off">
xpath = //span[@class='bg s_ipt_wr']/input
C:布尔值写法
如果一个人的姓名不是唯一的,身份证号也不是唯一的,但是同时叫张三并且身份证号为123 的人却可以唯一的确定一个人。那么可以这样写:
Xpath = //input[@id=’kw1’ and @name=’wd’]