【web自动化测试Robotframework开发手册—特殊元素】

基于robotframework框架的web自动化测试,关于一些特殊元素的定位使用:

1.点击下拉 li菜单

先click 上级菜单

然后 wait untl page contains element 下级菜单链接

然后click element下级菜单的链接

2.悬停下拉li菜单

先Mouse over 上级菜单

然后 focus 下级菜单

然后 Mouse Over 下级菜单

然后 click element 下级菜单(chrome用execute Javascript $(‘下级菜单css定位’).click())


3.textarea自动换行

获取text

【web自动化测试Robotframework开发手册—特殊元素】

4.悬停下拉li动态选项框
【web自动化测试Robotframework开发手册—特殊元素】

步骤1:由于li列表是动态的,从数据库查询才能知道li选项的个数(或者用execute javascript 统计li的个数),所以本例子先从数据库查询得到选项的个数,选项名称,选项ID

由于每个li链接并不是click就能跳转,它的onclick事件是一个js的加载事件reload(x),且x为选项ID;

步骤2:根据选项个数,要选择的选项名称与数据库中的返回的名称循环比对,找到它在数组中的序号,那么页面选项的数组中序号也是这个,由此可以找到匹配的选项ID;

步骤3:Muse over 上级菜单,然后执行execute javascript reload(x)


5.日期选择输入框
【web自动化测试Robotframework开发手册—特殊元素】

上面这种日期选择框,可以直接用input text来输入起止日期;

今天——近30天,则都是link,可以直接click element来操作;


6.点击弹出选择窗口
【web自动化测试Robotframework开发手册—特殊元素】

上述这种选择窗口,直接点击清除,然后定位筛选输入框,输入查询的选项,然后select checkbox 定位到要选择的那个选项,或直接click element定位到复选框,最后点击窗口外面的空白处,完成输入;

7.table展示列表单元格各值获取
【web自动化测试Robotframework开发手册—特殊元素】

先获取列表记录行数,然后再循环GET text 定位到单元格(以行数tr下标循环);

当列表记录中有数据为0的记录,而数据库查询不展示数据为0的记录时,比对数据时,可以做如下处理:

comment 用${j}统计数为0的天数                                                      

${j}= RunKeyword If         ${each_totalv}==0   Evaluate  int(${j}+1) ELSE Evaluate  int(${j}+0)

comment 数据库返回的数据是不包含数为0的,所以数组的下标要计算一下,减掉数为0的,${i}-${j},且这个下标要小于数据库返回的数据个数;页面上获取的三种值分别与数据库返回的值进行一一比对;                                                  

${compare1}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${eachday_total}-${re[4][${i}-${j}]}  ELSE         SetVariable      0

${compare2}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${certainFile}-${re[2][${i}-${j}]}         ELSE         SetVariable      0

${compare3}=  Run Keyword If         ${each_totalv}>0and (${i}-${j})<${re[0]} Evaluate  ${reviewFile}-${re[3][${i}-${j}]} ELSE SetVariable   0


8.controlslider滑块
【web自动化测试Robotframework开发手册—特殊元素】

使用Drag And Drop By Offset (locator,xoffset,yoffset)

其中locater定位到滑块元素(可拖动的那个小块),xoffset为滑块横向偏移像素单位,正整数向右移动,负整数向左移动,yoffset为上下纵向偏移像素单位,正整数向上,负整数向下;

当想要移动到最右端或最左端,查看滑条的总长度,不要忘记扣掉拖动的小块的长度,如滑条轨道长度为213,小滑块长度为3,则210即可滑动到最右边;


9.带链接的动态列表各值获取

【web自动化测试Robotframework开发手册—特殊元素】

【web自动化测试Robotframework开发手册—特殊元素】

页面代码如上的一个鼠标悬停后展示下拉菜单,下拉菜单的选项个数的获取

可以通过

 execute javescript   return $("#mc-main-inner >div.main-content.wcs-main-content.wcs-space > div.account-nav.clearfix >div > div.account-item > ul > li").length;

这里为了验证下拉菜单各选项是否正确,且反正要从数据库查选项ID;直接从数据库查询了选项的个数、选项名称、选项ID;

【web自动化测试Robotframework开发手册—特殊元素】

处理思路:

首先,从数据库查询数据选项个数、选项名称、选项ID,三元组,保存在@{Ln}中;

然后,等待页面中的选项框展示,FOR循环,比对要选择的选项名称,找到选项在数组中的下标,从而找到选项ID值所在数组下标;

接着,鼠标mouse over悬停到选项框上级菜单,展示下拉菜单,然后evaluate 将选项ID值转换为整型;

最后,执行 execute Javascript reload(${选项名称对应的ID}),等待加载后,检查选项框应显示选中的选项名称;