常用四种元素定位方式:id、name、xpath、css
1、id和name定位是比较简单也比较常用的元素定位方法
一般情况下,id和name是唯一的,可比较确切地定位到某个元素,当然,这要看前端开发的设计了。
以在百度输入框输入搜索内容为例,
input text id=kw robotframework
或 input text name=wd robotframework
2、xpath
用xpath定位是,一般分为相对路径定位及绝对路径定位
2.1 xpath的绝对路径
xpath = /html/body/div[1]/div[4]/div[2]/div/form/span[1]/input
可以从最外层开始找,html 下面的body 下面的div 下面的第4 个div 下面的....input 标签。通过
一级一级的锁定就找到了想要的元素。
2.2 xpath的相对路径
2.2.1 元素本身
Xpath 同样可以利用元素自身的属性:
Xpath = //*[@id=’kw1’]
//表示某个层级下,*表示某个标签名。@id=kw1 表示这个元素有个id 等于kw1 。
当然,一般也可以制定标签名:
Xpath = //input[@id=’kw1’]
元素本身,可以利用的属性就不只局限为于id 和name ,如:
Xpath = //input[@type=’text’]
Xpath = //input[@autocomplete=’off’]
但要保证这些元素可以唯一的识别一个元素。
2.2.2 找上级
当我们要找的一个人是个刚出生的婴儿,还没起名子也没有入户口(身份证号),但是你会永远跟在父亲的身边,你的父亲是有唯一的名字和身份证号的,这样我们可以先找到你父亲,自然就找到你的。
元素的上级属性为:
<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_w’]/input
如果爸爸没有唯一的属性,可以找爷爷:
xpath = //form[@id=’form1’]/span/input
这样一级一级找上去,直到html ,那么就是一个绝对路径了。
2.2.3 布尔值写法:
如果一个人的姓名不是唯一的,身份证号也不是唯一的,但是同时叫张三并且身份证号为123 的人却可以唯一的确定一个人。那么可以这样写:
Xpath = //input[@id=’kw1’ and @name=’wd’]
可以and ,当然也可以or :
Xpath = //input[@id=’kw1’ or @name=’wd’]
但or 的实际意义不太。我们一般不需要说,找的人名字或者叫张三,或者身份证号是123 也可以。
input text xpath = //*[@id=’kw1’] robot framework 学习
input text xpath = //span[@class=’bg s_ipt_w’]/input robot framework 学习
input text xpath = //input[@id=’kw1’ and @name=’wd’] robot framework 学习