我也开通测试空间了 : ) :)

RFS元素定位方法

上一篇 / 下一篇  2015-10-14 16:13:31 / 个人分类:RFS 自动化测试

在Robot framework中元素的定位。
常用的有4种:id name xpath css ,尤其后两种是“万能的”,所以可以解决99%的定位问题。
id name 定位    
假如把一个元素看作一个人的话,id name可以看作一个人的身份证号和姓名。当然,这些属性值是否唯一要看前端工程师如何设计了。
打开浏览器,按F12(有的电脑需要按Fn+F12),选择定位指标,点击如用户名的编辑框,可以查看name="username",id="username"
在Robot framework 中就是这样写的:
input text      name=username   admin
input text      id=username   admin
xpath定位        
假如,一个人没身份证号没名字怎么找呢?想想你是怎么找朋友吃饭的,他手机不通,电话不回呢?直接上他家去呗,那你一定有他家住址,xxxxxxxx号。Xpath 就可以通过这种层级关系找到元素。

1、Xpath的绝对路径:

Xpath = /html/body/div[1]/div[4]/div[2]/div/form/span[1]/input 

我们可以从最外层开始找,html下面的body下面的div下面的第4div下面的....input标签。通过一级一级的锁定就找到了想要的元素。

2、Xpath的相对路径:

绝对路径的用法往往是在我们迫不得已的时候才用的。大多时候用相对路径更简便。

2.1、元素本身:

Xpath同样可以利用元素自身的属性:

Xpath = //*[@id=’kw1’]

//表示某个层级下,*表示某个标签名。@id=kw1 表示这个元素有个id等于kw1 

当然,一般也可以制定标签名:

Xpath = //input[@id=’kw1’]

元素本身,可以利用的属性就不只局限为于idname ,如:

Xpath = //input[@type=’text’]

Xpath = //input[@autocomplete=’off’]

但要保证这些元素可以唯一的识别一个元素。

2.2、找上级:

  当我们要找的一个人是个刚出生的婴儿,还没起名子也没有入户口(身份证号),但是你会永远跟在你父亲的身边,你的父亲是有唯一的名字和身份证号的,这样我们可以先找到你父亲,自然就找到你的。

找爸爸:

xpath = //span[@class=’bg s_ipt_w’]/input

如果爸爸没有唯一的属性,可以找爷爷:

xpath = //form[@id=’form1’]/span/input

这样一级一级找上去,直到html ,那么就是一个绝对路径了

2.3、布尔值写法:

  如果一个人的姓名不是唯一的,身份证号也不是唯一的,但是同时叫张三 并且 身份证号为123 的人却可以唯一的确定一个人。那么可以这样写:

Xpath = //input[@id=’kw1’ and @name=’wd’]

可以and ,当然也可以or :

Xpath = //input[@id=’kw1’ or @name=’wd’]

or的实际意义不太。我们一般不需要说,找的人名字或者叫张三,或者身份证号是123 也可以。


Robot framework 中的写法:

CSS定位      

 Css的定位更灵活,因为他它用到的更多的匹配符和规格。

http://www.w3school.com.cn/cssref/css_selectors.asp


不是原创,抄自虫师的博客 http://www.cnblogs.com/fnng/p/3901391.html



TAG: 元素

zxd54321的个人空间 引用 删除 zxd54321   /   2015-10-15 09:36:05
5
 

评分:0

我来说两句

Open Toolbar