Set variable
log:打印,相当于print
Catenate SEPARATOR=:可以对多个连接的信息进行分割
Create List:定义列表
get time:获取当前时间
通过“run keyword if”关键字可以编写 if 分支语句。
遍历列表 循环中的判断
执行本地程序
Robot Framework可通过“Import Library”关键字导入库 1、调用框架
Import Libraryunittest我们导入了 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。
“Comment”关键字用于设置脚本中的注释。
Scrennshot 同样为 Robot Framework 标准类库,其中一个关键字“Take Screenshot”,它用于截取到当前窗口。 虽然 Scrennshot 也为 Robot Framework 标准类库,但它默认不会加载,需要手动加载这个库。
Collections 库同样为 Robot Framework 标准类库,它所提供的关键字主要用于列表、索引、字典的处理。
字典也是一种常见的存放数据的形式,Create Dictionary 关键字用于创建关键字。
Get Dictionary Items 关键字用于读取字典的 key 和 value
Get Dictionary Items 关键字获取字典中的 key 和 value。Get Dictionary Keys 关键字获取字典中的 key。Get Dictionary Values 关键字获取字典中的 value。Get From Dictionary 关键字获取字典中的 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
将Selenium2Library库添加到相应的测试套件中
添加完成,黑色示添加的库正常,红色表示库不存。如果为红色,请检查 python2.7安装目录\Lib\site-packages 目录下是否有Selenium2Library 目录
通过按 F5 快捷键来查询库所提供的关键字。
下面进行打开浏览器的操作: “Open Browser”变蓝了,说明它是一个合法的关键字,后面有一个方框是红色的,表示这个参数 不能缺省的。通过说明信息中,我发现它需要一个 url 地址是必填的,当然还需要指定 browser (默 认不填为 friefox)
对于 Web 自动化测试来说,就是操作页面上的各种元素,在操作元素之间需要先找到元素,换句话说 就是定位元素。
Selenium2Library 提供了非常丰富的定位器:
下面介绍 4 种定位方式,id、 name、xpath 和 css。介绍 id 和 name,是因为这两种定位方式非常简单且实用,介绍 xpath 和 css,是因为 这两种定位方式足够强大,可以满足几乎所有定位需求。
关于 Selenium2Library 的关键字,我们可以参考:http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Unselect Checkbox 或者通过 F5查找 Selenium2Library 关键字库:
通过不同的浏览器执行脚本:
Open BrowserHtpp://www.xxx.comchrome浏览器对应的关键字:
浏览器名称关键字firefoxFireFoxffFireFoxinternetexplorerInternet ExplorerieInternet ExplorergooglechromeGoogle ChromegcGoogle ChromechromeGoogle ChromeoperaOperaphantomjsPhantomJshtmlunitHTMLUnithtmlunitwithjsHTMLUnit with Javascipt supportandroidAndroidiphoneIphonesafariSafariopen browser 同样也可以打开本地 html 页面,如:
Open Browserfile:///E:/OTCNEWSETT/OTC_qs/js.htmlgooglechrome备注: 要想通过不同的浏览打开 URL 地址,一定要安装浏览器相对应的驱动。 chrome 的驱动为:chromedriver.exe 。 IE 的驱动为:IEDriverServer.exe. 浏览器默认为空时启动 FireFox。
Maximize Browser Window 关键字使当前打开的浏览器全屏。
Get Window Size 800 600 get windows size 关键字用于打设置打开浏览器的宽度和高度。以像素为单位,第一个参数 800 表示宽 度,第二个参数 600 表示高度。
input text 关键字用于向文本框内输入内容。 xpath=//* [@] :表示元素定位,定位文本输入框。
Click Element 关键字用于点击页面上的元素,单击任何可以点击按钮、文字/图片连接、复选框、单选 框、甚至是下拉框等。 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=//* [@] : 定位文本信息的元素。
id=kw@name:id=kw 表示定位的元素。@nam 获取这个元素的 name 属性值。
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 browserhttp://www.baidu.comchrome${title}GetTitleshould 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 Textshould contain${text}百度一下,你就知道有时候和页面中会出现表单嵌套,这个时候需要进入到表单才能操作相关元素。
Select FrameXpath=//* [@]Unselect FrameSelect Frame 进入表单,Xpath=//* [@] 表示定位要进入的表单。 Unselect Frame 退出表单。
Unselect From List By Value 关键字用天选择下拉框。 Xpath=//* [@] 定位下拉框; Vlaue 选择下拉框里的属性值。
在一些特殊的情况下需要调用 JavaScript 代码。
Execute Javascript$(“#tooltip”).fadeOut();Execute Javascript 关键字用于使用 JavaScript 代码
