Set variable
log:打印,相当于print
Catenate
SEPARATOR=:可以对多个连接的信息进行分割
Create List:定义列表
get time:获取当前时间
通过“run keyword if”关键字可以编写 if 分支语句。
通过Evaluate可以使用python语言中所提供的方法。
![这里写图片描述](https://img-blog.csdn.net/20180409185041727?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ppYW5nbGlhbnllMjE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
Robot Framework可通过“Import Library”关键字导入库
1、调用框架
Import Library | unittest |
---|
我们导入了 Python 标准的单元测试框架 unittest。当然,在 Robot Framework 中并不能使用 unittest
单元测试框架。这只里只演示“Import Library”等同于 Python 语言中的 import。
2、调用python文件
#coding=utf-8
def add(a,b):
return(a+b)
if __name__=='__main__':
a=add(4,5)
print(a)
执行结果与我们预期的不一样,预期应该为9,但是执行结果为45.。这是因为 Robot Framework 把 4
和 5 当前两个字符串。所以 4 和 5 拼接起来是 45。我们可以将 4 和 5 转化成 int 类型,再调用 add。
Scrennshot 同样为 Robot Framework 标准类库,其中一个关键字“Take Screenshot”,它用于截取到当前窗口。
虽然 Scrennshot 也为 Robot Framework 标准类库,但它默认不会加载,需要手动加载这个库。
Collections 库同样为 Robot Framework 标准类库,它所提供的关键字主要用于列表、索引、字典的处理。
字典也是一种常见的存放数据的形式,Create Dictionary 关键字用于创建关键字。
Get Dictionary Items 关键字用于读取字典的 key 和 value
虽然 Scrennshot 也为 Robot Framework 标准类库,但它默认不会加载,需要手动加载这个库。
在 Robot Framework 中关键字的创建分两种:系统关键字和用户关键字。系统关键字需要通过脚本开发相应的类和方法。用户关键字的创建就要简单得多,它主要利用现有的系统关键字,根据不同的业务,把多个重复的步骤集合在一起组成用户关键字。
注意这个时候用户关键字和测试用例平级,所以在测试用例中可以直接使用
在实际的项目测试过程中,我们往往需要创建许多这样的具有通用性的用户关键字。不希望这些关键
字依附于某个测试套件,甚至是某个项目。那么我们可以创建资源文件用于存放这些关键字。
1、创建资源
选择某个项目,右键选择“New Resource”创建资源
输入资源名称:
2、创建关键字
右键“业务关键字资源”选择“New User Keyword” 来创建用户关键字。
3、导入资源
因为“业务关键字资源.txt”和“suite1”属于并列关系。测试套件要想使用业务关键字下的“资源1”关键字,需要导入资源。与前面导入关键字方法一样
对 Robot Framework 框 架 的 Selenium 库 有 两 个 : SeleniumLibrary 和 Selenium2Library 。
SeleniumLibrary 是基于 Selenium1.0 开发的,Selenium2Library 是基于 Selenium2.0 开发的。如果没有
历史遗留问题,我们直接使用 Selenium2Library。
终端中输入:
pip install robotframework-selenium2library
添加完成,黑色示添加的库正常,红色表示库不存。如果为红色,请检查
python2.7安装目录\Lib\site-packages 目录下是否有Selenium2Library 目录
下面进行打开浏览器的操作:
“Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数
不能缺省的。通过说明信息中,我发现它需要一个 url 地址是必填的,当然还需要指定 browser (默
认不填为 friefox)
对于 Web 自动化测试来说,就是操作页面上的各种元素,在操作元素之间需要先找到元素,换句话说
就是定位元素。
下面介绍 4 种定位方式,id、
name、xpath 和 css。介绍 id 和 name,是因为这两种定位方式非常简单且实用,介绍 xpath 和 css,是因为
这两种定位方式足够强大,可以满足几乎所有定位需求。
关于 Selenium2Library 的关键字,我们可以参考:http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Unselect%20Checkbox
或者通过 F5查找 Selenium2Library 关键字库:
通过不同的浏览器执行脚本:
Open Browser | Htpp://www.xxx.com | chrome |
---|
浏览器对应的关键字:
浏览器名称 | 关键字 |
---|---|
firefox | FireFox |
ff | FireFox |
internetexplorer | Internet Explorer |
ie | Internet Explorer |
googlechrome | Google Chrome |
gc | Google Chrome |
chrome | Google Chrome |
opera | Opera |
phantomjs | PhantomJs |
htmlunit | HTMLUnit |
htmlunitwithjs | HTMLUnit with Javascipt support |
android | Android |
iphone | Iphone |
safari | Safari |
open browser 同样也可以打开本地 html 页面,如:
Open Browser | file:///E:/OTCNEWSETT/OTC_qs/js.html | googlechrome |
---|
备注:
要想通过不同的浏览打开 URL 地址,一定要安装浏览器相对应的驱动。
chrome 的驱动为:chromedriver.exe 。
IE 的驱动为:IEDriverServer.exe.
浏览器默认为空时启动 FireFox。
Maximize Browser Window |
---|
Maximize Browser Window 关键字使当前打开的浏览器全屏。
Get Window Size | 800 | 600 |
---|
Get Window Size 800 600
get windows size 关键字用于打设置打开浏览器的宽度和高度。以像素为单位,第一个参数 800 表示宽
度,第二个参数 600 表示高度。
Input Text | xpath=//* [@] | 输入信息 |
---|
input text 关键字用于向文本框内输入内容。
xpath=//* [@] :表示元素定位,定位文本输入框。
Click Element | xpath=//* [@] |
---|
Click Element 关键字用于点击页面上的元素,单击任何可以点击按钮、文字/图片连接、复选框、单选
框、甚至是下拉框等。
xpath=//* [@] :表示元素定位,定位点击的元素。
Click Button | xpath=//* [@] |
---|
Click Element 关键字用于点击页面上的按钮。
Xpath=//* [@] :表示元素定位,定位点击的按钮。
|Wait Until Page Contains Element |xpath=//* [@] |42|error|
| ————- |:————-:| —–:| —–:|
Wait Until Page Contains Element 关键字用于等待页面上的元素显示出来。
Xpath=//* [@] :表示元素定位,这里定位出现的元素
42 : 表示最长等待时间。
Error : 表示错误提示,自定义错误提示,如:“元素不能正常显示”
|Get Title |||
| ————- |:————-:| —–:|
get title 关键字用于获得当前浏览器窗口的 title 信息。
这里只获取 title 是没有意义的,我们通常会将获取的 title 传递给一个变量,然后与预期结果进行比较。
从而判断当前脚本执行成功。
Get Text | xpath=//* [@] |
---|
get text 关键字用于获取元素的文本信息。
xpath=//* [@] : 定位文本信息的元素。
Get Element Attribute | id=kw@name |
---|
id=kw@name:id=kw 表示定位的元素。@nam 获取这个元素的 name 属性值。
get cookies | ||
---|---|---|
get cookie value | Key_name | |
add cookie | Key_name | Value_name |
delete cookie | Key_name | |
delete all cookies |
get cookies 获得当前浏览器的所有 cookie 。
get cookie value 获得 cookie 值。key_name 表示一对 cookie 中 key 的 name。
add cookie 添加 cookie。添加一对 cooke (key:value)
delete cookie 删除 cookie。删除 key 为 name 的 cookie 信息。
delete all cookies 删除当前浏览器的所有 cookies。
获得浏览器 title 进行比较。
open browser | http://www.baidu.com | chrome |
---|---|---|
${title} | Get | Title |
should contain | ${title} | 百度一下,你就知道 |
Open Browser 通过 chrome 打开百度首页。
Get Title 获得浏览器窗口的 titile ,并赋值给变量 “ title”“ShouldContain”比较” t i t l e ” “ S h o u l d C o n t a i n ” 比 较 ” {title}”是否等于“百度一下,你就知道”。
获得文本信息进行比较
${text} | Get Text | |
---|---|---|
should contain | ${text} | 百度一下,你就知道 |
有时候和页面中会出现表单嵌套,这个时候需要进入到表单才能操作相关元素。
Select Frame | Xpath=//* [@] | |
---|---|---|
Unselect Frame |
Select Frame 进入表单,Xpath=//* [@] 表示定位要进入的表单。
Unselect Frame 退出表单。
Unselect From List By Value | Xpath=//* [@] | value |
---|
Unselect From List By Value 关键字用天选择下拉框。
Xpath=//* [@] 定位下拉框;
Vlaue 选择下拉框里的属性值。
在一些特殊的情况下需要调用 JavaScript 代码。
Execute Javascript | $(“#tooltip”).fadeOut(); |
---|
Execute Javascript 关键字用于使用 JavaScript 代码