上一次我们学习了robot一些常用的语法,今天我们再来学习下在web自动化中的一些常见语法
在web自动化中可以拆分为ui自动化和接口(api)自动化,主要用到的第三方库分别是seleniumlibrary和requestslibrary,如果要操作app自动化,那需要使用appiumlibrary
鉴于selenium2library已经有点过时了,所以个人使用的是seleniumlibrary,各位老铁根据自己所安装的库来学习
1:在robot中引入第三方库,都是在settings中进行添加,方法如下
*** Settings ***
Library SeleniumLibrary
Library RequestsLibrary
2:在ui自动化中经常使用到的便是Open browser,方法如下
*** Keywords ***
打开浏览器谷歌浏览器并访问网址
Open Browser https://www.baidu.com chrome
3:在ui自动化中经常使用到的便是隐式等待以及窗口最大化,方法如下
*** Keywords ***
打开浏览器谷歌浏览器并访问网址
Open Browser https://www.baidu.com chrome
Set Browser Implicit Wait 5
Maximize Browser Window
4:在ui自动化中文本输入input也是不可缺少的,方法如下:
*** Keywords ***
输入用户名和密码并登录
Input Text xpath=//*[@id="name"] testuser1
Input Password xpath=//*[@id="pass"] 123456
Click Element xpath=//*[@class="form-actions"]/input
5:在ui自动化中经常会操作点击事件,方法如下
*** Keywords ***
点击
Click Element locator ---->用于点击元素,前提是该元素是存在的
Click Link locator ---->用于点击链接,主要用于a标签这种
Click Image locator ---->用于点击图片
6:在ui自动化中也会使用到js,来辅助我们的自动化,方法如下
*** Keywords ***
执行js
Execute Javascript ${JSContent}
7:在ui自动化中经常会使用到鼠标移动事件,来操作鼠标,方法如下
*** Keywords ***
鼠标滑动
mouse over ${location}
8:在ui自动化中也会遇到iframe,那么如何选择呢,方法如下
*** Keywords ***
选择Frame
Select Frame ${location}
9:在ui自动化中有时元素需要等几秒再出来,虽然有了隐式等待,我们还有方法,如下
*** Keywords ***
等待元素
wait until element is visible ${location} ${time} ${error}
10:在ui自动化中经常也会操作单选框和勾选框
*** Keywords ***
单选框
Select Radio Button ${group} ${value}---->操作单选框
Select Checkbox ${location}---->勾选框
11:在ui自动化中if虚幻也是经常用到的,方法如下
*** keywords ***
if循环
Run Keyword If '${s1}'=='${s2}' Log To Console 输出结果为:yes
... ELSE Log To Console 输出结果为:no
12:说了这么多,直接上一波实例,这是一个简单的登录接口的例子
*** Settings ***
Library RequestsLibrary
Library Collections
Suite Setup Create Session api https://sht-lc.vipthink.cn/api_admin.php/cc verify=true
*** Variables *** value
${header} application/json;charset=UTF-8
*** Keywords ***
update_header
Comment 从上一步请求的json结果里面更新头
[Arguments] ${header}
&{header} Create Dictionary Content-Type=${header}
Update Session api headers=${header}
*** Test Cases ***
登录
update_header ${header}
&{test_params} Create Dictionary username=19191919191 password=123456
${response} Post On Session api login/login json=${test_params}
Log ${response.text}
Log To Console ${response.text}
Status Should Be 200 ${response}
${j}= Evaluate type($response.text)
Log To Console response的类型:${j}
#转成json
${j}= To Json ${response.text}
Log To Console ${j['info']}
Comment 断言
Run Keyword If '${j['info']}'=='成功' Log To Console 登录成功
... ELSE Log To Console 登录失败