SeleniumLibrary
是针对 Robot Framework
开发的 Selenium
库。它也 Robot Framework
下面最流程的库之一。主要用于编写 Web UI
自动化测试。
一、安装 pip install --pre --upgrade robotframework-seleniumlibrary
二、创建一个RobotFramework关键字自动化测试
1、创建一个文件test_search.robot
2、内容
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
打开浏览器
Open Browser http://www.baidu.com chrome
百度搜索测试
Input text id=kw robot framework
click button id=su
关闭浏览器
close Browser
3、运行:打开cmd命令窗口,进入文件目录,执行命令pybot test_search.robot
4、执行结果如下
5、执行后,还产生了另外三个文件
output.xml 为原始的测试结果记录
log.html 为测试过程日志
report.html 为html格式的测试报告
以上只是一个特别简单的场景打开百度浏览器和进行搜索。
在robot framework
的seleniumlibrary
中已经提供了很多关键字,如上面程序的Open Browser
、Input text
等,可以直接使用这些关键字进行测试,上面代码中使用id=kw
进行元素定位,与selenium定位其实一样只是书写形式不同,http://www.testclass.net/rf/seleniumlibrary-find-element/ 这篇文章更详细的讲解了seleniumlibrary
中元素的定位
http://www.testclass.net/rf/seleniumlibrary-api/ 这篇文章更加详细讲解了SeleniumLibrary 常用关键字可支持更加复杂的场景使用,包括对浏览器的操作,cookie等的处理。
下面这段代码也是百度搜索的测试,但是使用了更多Robot Framework中的概念,与SeleniumLibrary中的关键字,并引入分层的概念,在编写自动化测试时经常会遇到重复的操作,分层的概念就是把重复的操作封装成 “用户关键字”,这样就可以减少冗余。
http://www.testclass.net/rf/seleniumlibrary-layering/ 这篇文章用简单的例子更好的解释了这一概念
1、*** Variables ***
定义变量
2、*** Keywords ***
自定义关键字,如下代码的Open Browsers
、Input Search Word
*** Settings *** #定义设置部分
Library SeleniumLibrary #导入SeleniumLibrary 模块
*** Variables *** #定义变量
${baidu} https://www.baidu.com
${browser} Chrome
${searchWord} robot framework
${search_input} id=kw
${search_btn} id=su
*** Test Cases ***
启动浏览器:
Open Browsers
百度搜索测试
Input Search Word
Click Search Button
断言搜索结果标题
Assert Search Result
关闭浏览器
Quit Search
*** Keywords ***
#自定义关键字
Open Browsers
Open Browser ${baidu} ${browser}
Title Should Be 百度一下,你就知道
Input Search Word
Input Text ${search_input} ${searchWord}
Click Search Button
Click Button ${search_btn}
sleep 5s
Assert Search Result
Title Should Be robot framework_百度搜索
Quit Search
Close ALL Browsers
不想写了接着继续学习啦啦