使用方法举例
这里记录下做工作做自动化遇到的一些知识点。
选择使用robot的原因:
1.可以自己封装关键字,随意调用。
2.命令比较简单,明了。(如:
input text
,
click element
)
3.会自动生成日志,不需要自己去配置了。
4.可以搭配jenkis使用。
-1 robot命令指定报告位置、并执行指定测试用例
robot -d ../ --test CardAppoint GeneralAppoint.robot
-
-d ../ 是把报告存储在当前位置的上一级
-
--test CardAppoint GeneralAppoint.robot 执行指定测试用例(CardAppoint 用例名字)(GeneralAppoint.robot文件名)
一、执行javascript
1.自动滚动屏幕
Execute Javascript
执行javascript的命令-
document.documentElement.scrollTop=100
:javascript语句,后面的(100),是屏幕滚动100px。
2.改变输入框的readOnly属性
一些时间的输入框,使用的是日历插件选择时间。因为插件上显示的日期不是固定的,不容易点击,自动化输入比较好。因为输入框使用的readOnly属性,所以禁止输入了,这时候可以修改readOnly的属性。
- 不可以属于的元素
<input id="noticeCreateTimeEnd" readonly="readonly" onclick="javascript:WdatePicker({dateFmt:'yyyy-MM-dd'}); name='condition.createDateEnd'">
- 修改readOnly,Execute Javascript 是执行js脚本的关键字,后面的是js代码
Execute Javascript document.getElementById("noticeCreateTime").readOnly=false
2.获取界面元素
(标签中不包含id,name,value,class等)
如:<span>名称<span>
,span中的值怎么去获取。
方法:
- ①:可以通过selenium中实现
phone = browser.find_element_by_xpath('').text
,因为选择了robot,所以这个方法舍弃。 - ②:robot中可以使用
get text
关键字进行获取,如下:。
3.连接数据库操作
连接数据库需要pymsql
和DatabaseLibrary
两个库的支持。
Connect To Database Using Custom Params
这是连接数据库的关键字
Query
查询关键字,后面加sql语句Execute Sql Script
执行有sql语句的文件,后面放文件路径和名称Execute Sql String
执行sql语句Disconnect From Database
断开数据库连接的关键字
4.如何改变变量的值
Set Variable If
使用这个关键词
${sex2} Set Variable If ${sex}==0 女 男
Run Keyword If
并不适用于这个场景
5.调用关键字中的返回值
首先需要在关键字中 Return Value 添加需要返回的变量,如下图。
调用的时候,在关键字的 前面 自定义一个变量来承接返回值。
${sss} (空格) one
这样上一个变量中的${result}
值会赋给${sss}
,此时打印出 ${sss} 的值,结果为 100
6.关于动态id或者说是动态元素定位
场景描述:
- 因为每次打开id的值都是变化的,所以像往常的定位方式无法使用。
- 解决办法,
get element attribute
关键字的使用。如下:
这个xpath定位没有去简写,这里举个例子。通过xpath路径定位的方式定位到该位置,然后获取到变化的元素的值,如(id)值,然后进行使用。因为robot中默认是支持id
定位,直接写就可以。如果是其他元素如(class),就需要这样写://*[@class="kw"]
。如果不想使用元素定位,直接使用xpath路径定位也是可以的。
7.对弹出框进行操作
对弹出框进行点击确认、取消、和对弹出框中的输入框输入信息、获取弹出框的信息。
Handle Alert
默认是确认Handle Alert
dismiss
点击取消Handle Alert
leave
保持弹出框一直打开${message}
Handle Alert
获取弹出框信息,然后点击确认${message}
Handle Alert
leave
获取弹出框信息,保持弹出框一直打开Input Text Into Alert
对弹出框中的输入框输入信息,默认点击确认
8.双击界面元素
有些元素需要双击才能达到预期效果,此时需要双击关键词
Double Click Element
双击界面元素
9.robot中for循环的使用
下面举例使用for循环进行切换网页,结合使用了run keyword if关键字。
无论什么语言,for循环的原理都是一样的,这里从10的范围循环取值,(0-10)不包含10 ,赋值给变量${i}
,然后使用run keyword if
判断${i}
的值是偶数还是奇数,进行切换窗口。
10.非input输入框输入内容
press keys
前端页面有一些输入框不是input
标签,那么我们使用input text
的时候,就会操作了如:unknown error: cannot focus element,此时我们可以使用press keys
关键字,用法如下:
press Keys //html/body/p this is a test template
模拟敲下按键。