最近在用robot framework做UI自动化,常见的用的最多的是selenium,这里使用的是selenium2lilbrary,直接pip安装即可。
UI自动化最主要的就是元素定位,先进行定位,才能对元素进行操作,selenium2lilbrary提供了多种元素定位方式,如下图所示,常用的是id、name、xpath等方式。
这里主要讲一下xpath定位。xpath是在xml文档中查找信息,使用路径表达式在xml文档中进行导航,包含一些标准函数库。
1.xpath的术语
例子:
<?xml version="1.0" encoding="UTF-8"?>
<company>
<shop>
<item>T-shirt</item>
<price>100</price>
</shop>
</company>
1)节点:xpath中,有7种不同节点(元素、属性、文本、处理指令、命名空间、注释和根)
如上面例子中company就是根节点,里面的title等是元素节点
2)基本值:无父或无子的节点,如元素节点里面的值
3)节点关系
父:每个元素或属性都有父,如例子中,shop是item和price的父,company是shop的父
子:与父对应,即shop是campany的子,item和price是shop的子
同胞:拥有相同父的节点,如item和price
先辈:节点的父/父的父,item的先辈是shop和company
后代:节点的子/子的子,company的后代是shop/item/price
2. xpath的语法
xpath的路径表达式使用xml的节点或节点集,通过路径来选取
选取节点如下
3. xpath定位
使用xpath定位可以选择绝对路径或相对路径。
1)绝对路径:即从网页的根节点开始,一层一层向下寻找,如/html/body/div[2]/div/div[2]/div[3]/div[1]/div[4],这种方式下,一旦有一个路径错误,就会错,这种情况用的较少
2)相对路径:只考虑节点不去管路径,如//input[@placeholder=’请输入密码’],这种情况下会定位到input内的信息的元素
rf中使用起来也很方便,只要直接使用input text关键字,填写xpath和内容,即可模拟,如下图就是个最简单的模拟登陆操作。
4. 工具获取
火狐浏览器有挺多插件支持的,可以直接在扩展总搜索xpath相关的插件,使用插件定位就可以返回结果,如下图。