1、什么是用户关键字
对比python文件中,提供了很多关键字,我们叫库关键字
同样的RF中也可以实现关键字,这种关键字成为用户关键字
定义好用户关键字之后,该测试套件里面就可以使用这个用户关键字
2、如何定义、使用用户关键字
首先要创建关键字表
关键字都在*keywords*表中定义
以下直接用一个实例演示:
登陆一个页面,先初始化清除(删除)已经添加的用户
然后添加一个新的用户
最后再做一次清除
初始化清除讲解可参考https://blog.csdn.net/wudada1993/article/details/107381818
(因为文中代码网址涉及到的网址 以及登录用户属于隐私,暂不共享)
- 第一步,先展示没有创建关键字之前的 原代码
- 登录系统之后,先删除用户列表里面的所有用户,此时先创建一个删除的python文件 dele_cma.py文件
文中有详细的注释,如有不明白可在评论区交流
from selenium import webdriver
from time import sleep
def delete_user():
driver=webdriver.Chrome()
driver.implicitly_wait(10)
#网址属于隐私,暂不公开
driver.get('https://www.jlchaxxxxxxxxxxxxxxxxxx/fo52/A32kjij9LJi8#/')
driver.maximize_window() #窗口最大化
#输入登录的用户名跟密码
driver.find_element_by_xpath('//*[@id="card-1"]/div/div[1]/input').send_keys('xxxxxxx') #用户名
driver.find_element_by_xpath('//*[@id="card-1"]/div/div[2]/input').send_keys('Aa1b2c3d4!') #密码
driver.find_element_by_css_selector('.row button').click() #点击确定
#进入添加用户的界面
driver.find_element_by_css_selector('.menu-box li:nth-of-type(2)>div>i:nth-of-type(1)').click()
driver.find_element_by_xpath('//*[@class="menu-box"]/div/li[2]/div[2]/ul[1]/li/a/span[2]').click()
#因为每次删除一个用户之后,用户列表会重新刷新,所以此时使用while true循环
while True:
# 获取删除按钮
delebuttons = driver.find_elements_by_css_selector('.ivu-card-body .table.table-bordered>tbody>tr>td:nth-of-type(7)>button:nth-of-type(5)')
#判断如果页面的删除按钮存在,每次循环取第一个删除
if delebuttons:
#点击删除
delebuttons[0].click()
#点击确定
driver.find_element_by_css_selector('.ivu-modal-body .ivu-modal-confirm-footer>button:nth-of-type(2)').click()
sleep(1)
else:
break
driver.quit()
- 第二步:创建一个robot文件 (实现整个实例)
#登陆之后,先查看用户列表是否有用户,如果有的话,先删除已有的用户,然后添加一个新用户 ,最后删除新添加的用户
#登陆之后,先查看用户列表是否有用户,如果有的话,先删除已有的用户,然后添加一个新用户 ,最后删除新添加的用户
*** Settings ***
Library SeleniumLibrary
Library Collections #创建一个空列表需要导入这个库
Library dele_cma.py #导入创建的dele_cma.py
*** Test Cases ***
测试2
#执行这个测试用例的时候先使用steup (steup是测试一个用例之前要做的事情,也就是测试添加用户之前先做删除工作)
[Setup] delete_user #delete_user是 dele_cma.py文件中的函数
#rf中打开浏览器地址用Open Browser
Open Browser https://www.jlchaxxxxxxxxxxxxxxxxxx/fo52/A32kjij9LJi8#/ chrome #此处的chrome需要提前添加路径在环境变量path中
Set Selenium Implicit Wait