robot framework关键字
建文件
.rebot 添加测试用例等
.resource 添加变量及一些关键字
常用关键字
#导入库
*** Settings ***
Library Selenium2Library
Library String
*** Settings ***
Default Tags osm middle userManagement importUser
Resource ../用户管理公共功能.resource
#添加变量
*** Variables ***
#测试用例
*** Test Cases ***
#关键字
*** Keywords ***
刷新网页
Reload Page
打开浏览器(浏览器类型 火狐浏览器:ff 谷歌浏览器:gc)
open browser ${url} gc
关闭浏览器
close all browsers
取属性值
${value} Get Value //*[@id="enable_syncad"]
取input框的值
${text} Get Element Attribute ${passwdManager_length_min} value
if语句
[Arguments] ${adDomain_enable_plan_value} ${adDomain_synccycle_value}
run Keyword if ${adDomain_enable_plan_value}==1 Select Checkbox ${adDomain_enable_plan}
输入框输入 ${adDomain_synccycle} ${adDomain_synccycle_value} #输入抽取周期
替换字符
${resp} Replace String ${adDomain_save_bt} save_bt ${adDomain_save_bt_value}
复选框选择
[Arguments] ${ischeck} ${ischeck_property}
run Keyword if ${ischeck}>0 Select Checkbox ${ischeck_property} #选择
... ELSE Unselect Checkbox ${ischeck_property} #不选择
复选框取消
Unselect Checkbox ${check_xpath}
上传文件
${filePath} Set Variable ${CURDIR}\\用户文件\\${data[0]}[2]
choose file xpath=//*[@id="file"] ${fileName}
点击元素
wait until keyword succeeds 2s 1s click element xpath=${locator}
使用python 文件
*** Settings ***
Library ../03Library/ReadAndWrite_File.py
*** Keywords ***
读取测试数据
[Arguments] ${filename} ${sheet_name} ${case_name}
@{data} ReadAndWrite_File.readcell ${filename} ${sheet_name} ${case_name}
[Return] @{data}
if语句
run keyword if "${data[0]}[4]" !="0" 选择令牌种子密钥 ${keys_filepath}
Xpath定位注意点
1.找xpath的上级主要用点
//div[@aria-labelledby="ui-id-4"]//a[@title="AD用户"]/../span[2]
2.常用的定位方法
//*[@id="synccycle"]
3.div里面的为唯一的属性及属性值,及根据span文本值找具体的内容
//div[@aria-labelledby="ui-id-4"]//span[text()='保存']
4.根据两个属性值来定位位置
//input[@name="ip_mac_mode" and @value="2" ]
5.根据结果取第二个值
(//*[@id="bh-user-property-dialog"]//input[@name='ip_mac_mode'])[2]
js定位
1.是否选中复选框
document.querySelector("#enable_syncad").checked
2.rf 执行js
${value} Execute Javascript return document.querySelector("#enable_syncad").checked
常用语法
1.run keyword if 使用
[Arguments] @{data}
log ${data[0]}[6]
Run Keyword If '${data[0]}[6]' == 'ORACLE' run keywords log 匹配成功oracle
... AND 为文本框输入值 //input[@name="values[]"] ${data[0]}[13]
... AND 选择下拉框值_通过文本 //select[@name='values[]'] ${data[0]}[14]
... ELSE IF '${data[0]}[6]' == 'SYBASE' or '${data[0]}[6]' == 'DB2' or '${data[0]}[6]' == 'TERADATA' or '${data[0]}[6]' == 'POSTGRESQL' run keywords log 匹配成功DB2
... AND 为文本框输入值 //input[@name="values[]"] ${data[0]}[13]
2.for循环
[Arguments] ${length} ${device_group_name}
FOR ${i} IN RANGE 2 ${length}
资源管理_检查设备组 ${device_group_name}[${i}]
END
3.列表操作
根据字符对字符串分割
[Arguments] ${character_string} ${character} #${character_string}:为字符串,${character}需分割的字符
${character_array} Split String ${character_string} ${character} #处理设备组字符串
${length} get length ${character_array}
[Return] ${character_array} ${length}
4.字符串操作
4.1 Remove String
_分页选择用户
${page} 获取元素文本值 //*[@id="select-user-dialog"]//div[@class="whj_padding whj_color"][4] #查找一共多少页
${page} Remove String ${page} 共
${page} Remove String ${page} 页
思考
1.检查活动窗口?伪命题:看一下要操作的按钮是否可以操作
例:(运行关键字并返回状态,如果不能点击则返回false)
${present} Run Keyword And Return Status click element xpath=${resource_query_click} #检查是否可以用搜索按钮
注意
1.测试用例名称不能重复
2.若出现问题的地方为刚加载进去的时候,则加一些睡眠时间,等待一下,再试试