Robot framework 引入 Selenium2Library 类库:
在用robotframework-selenium2library做web自动化测试时候,首先要将Selenium2Library导入到Test Suite中,在导入Selenium2Library时可以指定以下可选参数:
- timeout=5.0
- implicit_wait=0.0
- run_on_failure=Capture Page Screenshot
- screenshot_root_directory=None
- 导入Selenium2Library库时,设置timeout参数值为0。
*** Settings ***
Library Selenium2Library timeout=0 *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Wait Until Element Is Visible link=退出
Click Element link=退出
Close Browser
- 在测试用例中通过关键字Set SeleniumTimeout设置参数值为0。
*** Settings ***
Library Selenium2Library *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Set Selenium Timeout 0
Wait Until Element Is Visible link=退出
Click Element link=退出
Close Browser
- 在使用Wait Until Element IsVisible关键字时指定timeout参数值为0。
*** Settings ***
Library Selenium2Library *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Wait Until Element Is Visible link=退出 timeout=0
Click Element link=退出
Close Browser
如果三种方式对timeout参数设置了不同的值,根据就近原则关键字参数中设置的timeout参数会对当前关键字生效,但是通过导入参数和通过Set SeleniumTimeout设置参数改变的是全局的timeout值。
个人认为在实际的通常项目的测试过程中全局默认的5s超时时间比较合理,所以不需要在导入Selenium2Library库时指定timeout参数,也不需要通过Set SeleniumTimeout在测试用例中修改timeout参数值,当特殊的测试测试步骤或者测试场景需要修改timeout参数值时,可以通过在关键字中指定timeout参数值使其在局部生效。
implicit_wait
implicit_wait是selenium查找元素时的一个隐含超时时间,默认值为0。对上面的用例做一点修改,不采用Wait Until Element Is Visible来判断元素是否可见,而直接操作元素,用例脚本如下:
*** Settings ***
Library Selenium2Library *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Click Element link=退出
Close Browser
执行测试用例时会报查找不到元素的错误,因为在执行Click Element link=退出 时页面还没加载完成,implicit_wait的值为0,selenium在查找不到元素时立刻返回错误。
我们在导入selenium库时将implicit_wait设置为5秒,用例脚本如下:
*** Settings ***
Library Selenium2Library implicit_wait=5 *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Click Element link=退出
Close Browser
再次执行用例脚本可正常执行。
也可以通过关键字Set Selenium Implicit Wait来设置全局的implicit_wait值,如下用例脚本也能正常执行。
*** Settings ***
Library Selenium2Library *** Test Cases ***
login
Open Browser http://www.126.com
Input Text id=idInput emailfortest2016
Input Password id=pwdInput 111112
Click Element id=loginBtn
Set Selenium Implicit Wait 5
Click Element link=退出
Close Browser
个人认为在实际测试过程中不需要设置implicit_wait值,在对页面或者元素进行操作前都通过Wait …关键字先判断页面是否加载完成或者元素是否可见,这样测试脚本的健壮性会更好。
run_on_failure
当Selenium2Library某个关键字执行失败时将指定运行关键字run_on_failure。
*** Settings ***
Library Selenium2Library run_on_failure=Capture Page Screenshot
默认可以使用Capture Page Screenshot来截取当前页面内容。使用值’Nothing’可以完全禁用该功能。
screenshot_root_directory
screenshot_root_directory指定了Capture Page Screenshot关键字截取页面图片的存放路径。如果没有指定那么截图图片会默认存放在robotframework日志文件存放路径。
Robot framework 引入 Selenium2Library 类库:的更多相关文章
- Robot Framework 自动化测试 Selenium2Library 库 用法
Robot Framework自动化测试Selenium2Library库详细用法 一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com ...
- Robot Framework自动化测试Selenium2Library库详细用法
一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com chrome 浏览器对应的关键字: firefox FireFox ff internete ...
- Robot Framework自动化测试(二)---元素定位
说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了seleni ...
- Robot Framework自动化测试---元素定位
不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的 ...
- Robot Framework用法总结
今天总结下Robot Framework最基本的用法,一来呢,希望自己以后看到这篇总结,很快能回忆起如何使用Robot Framework.二来呢,以初学者的姿态总结Robot Framework,希 ...
- 【转】Robot Framework用法总结
今天总结下Robot Framework最基本的用法,一来呢,希望自己以后看到这篇总结,很快能回忆起如何使用Robot Framework.二来呢,以初学者的姿态总结Robot Framework,希 ...
- [Robot Framework] 执行时报 webdriver 异常
在用Robot Framework通过Selenium2Library做web界面自动化测试的时候,报webdriver的错误: 此种情况是因为WebDriver的版本与浏览器的版本不对应. WebD ...
- Robot Framework自动化测试二(元素定位)
前言 在学习的过程中,可能会误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加 ...
- Robot Framework 初学者上手资料
首先要声明一下这是从http://www.cnblogs.com/yufeihlf/p/5949984.html拷贝的. 在这里只是自己的一个笔记,方便日后添加.修改内容. 总结下Robot Fram ...
随机推荐
- 流浪者(rover)
流浪者(rover) 题目描述 有一位流浪者正在一个n∗mn∗m的网格图上流浪.初始时流浪者拥有SS点体力值. 流浪者会从(1,1)(1,1)走向(n,m)(n,m),并且他只会向下走((x,y)→( ...
- HDU 5253 最小生成树 kruscal
Description 老 Jack 有一片农田,以往几年都是靠天吃饭的.但是今年老天格外的不开眼,大旱.所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行 ...
- 幸运数字(bzoj 1853)
Description 在中国,很多人都把6和8视为是幸运数字!lxhgww也这样认为,于是他定义自己的“幸运号码”是十进制表示中只包含数字6和8的那些号码,比如68,666,888都是“幸运号码”! ...
- 【CF1068D】Array Without Local Maximums(计数DP)
题意: n<=1e5 思路:卡内存 dp[i][j][k]表示当前第i个数字为j,第i-1个数字与第i个之间大小关系为k的方案数(a[i-1]<a[i],=,>) 转移时使用前缀和和 ...
- GC+JVM
1.内存管理模型 ①以对象的方式管理内存,每个对象占据内存中连续的一段,分配在堆中.对象引用可以指向堆中的其他对象.非基本数据类型的对象等价于数据引用. ②基于栈和堆的内存管理都是动态分配,即在运行时 ...
- java 修改字体大小
在Windows->Preferences->General->Appearance->Colors and Fonts->Java->Java Editor Te ...
- AC日记——【模板】普通平衡树(Treap/SBT) 洛谷 P3369
[模板]普通平衡树(Treap/SBT) 思路: 劳资敲了一个多星期: 劳资终于a了: 劳资一直不a是因为一个小错误: 劳资最后看的模板: 劳资现在很愤怒: 劳资不想谈思路!!! 来,上代码: #in ...
- [BZOJ3212][POJ3468]A Simple Problem with Integers
题目大意: 维护一个长度为$n(n\leq100000)$的数列,支持区间加.区间求和两种操作,操作共$m(m\leq100000)$次. 思路: Splay区间操作. #include<cst ...
- BeanFactory和ApplicationContext的异同
相同: Spring提供了两种不同的IOC 容器,一个是BeanFactory,另外一个是ApplicationContext,它们都是Java interface,ApplicationContex ...
- noip2017集训测试赛(六)Problem A: 炮艇大赛之正式赛
题目描述 给定一个长度为\(L \le 10^9\)的环形赛道, \(n \le 10^5\)个人在上面赛艇. 每个人的速度都不相同, 假如为正则顺时针走, 否则逆时针走. 当两个人相遇时, 他们就会 ...