robotframework-selenium2library-导入可选参数
来源:互联网 发布:一级计算机考试软件 编辑:程序博客网 时间:2024/06/01 08:05
在用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模块的__init__.py文件def __init__(self, timeout=5.0, implicit_wait=0.0, run_on_failure='Capture Page Screenshot', screenshot_root_directory=None ):
timeout
有几个Wait …关键字都有一个可选的timeout参数,可以将这个参数设置为全局变量,使Selenium2Library共用同一个timeout时间,同时这个timeout时间也支持异步执行Javascript关键字-Execute Async Javascript。
该参数的默认值为5.0,即全局的超时时间为5秒。看一下下面这个简单的126邮箱登录退出测试用例:
*** 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=退出 Click Element link=退出 Close Browser
在默认的timeout参数下,该用例可以正确执行,当通过以下方式改变timeout参数值为0时,用例都会执行失败:
- 导入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。
默认可以使用Capture Page Screenshot来截取当前页面内容。使用值’Nothing’可以完全禁用该功能。
screenshot_root_directory
screenshot_root_directory指定了Capture Page Screenshot关键字截取页面图片的存放路径。如果没有指定那么截图图片会默认存放在robotframework日志文件存放路径。
- robotframework-selenium2library-导入可选参数
- RobotFramework-Selenium2Library
- RobotFramework & Selenium2Library 安装指南
- RobotFramework+Selenium2Library环境安装
- RobotFramework+Selenium2Library环境安装
- RobotFramework+Selenium2Library环境安装
- robotframework + selenium2library 经验总
- Selenium2Library使用Remote功能(RobotFramework)
- 【转】RobotFramework+Selenium2Library环境安装
- robotframework+ride+Selenium2Library+AutoItLibrary配置
- RobotFramework+Selenium2Library+Httpwatch测试前端性能
- robotframework+selenium2library之上传本地文件
- robotframework + selenium2library 一点测试的经验
- RobotFramework+Selenium2library使用遇到的问题汇总
- robotframework+selenium2Library使用遇到的问题
- RobotFramework+Selenium2Library批处理自动安装说明
- 可选参数
- 可选参数
- 严格模式
- TCP状态知识总结(图解)
- CentOS下以RPM方式安装MySQL5.5
- Github开源项目之APIDOC
- 【HDU】 1180 诡异的楼梯
- robotframework-selenium2library-导入可选参数
- Java 基于JavaMail实现向QQ邮箱发送邮件
- JAVA枚举类型
- oracle做行列转换
- hadoop 集群 java.net.UnknownHostException
- Android Studio插件开发实战(3)-FindViewByMe插件分析
- 理解RESTful架构
- 如何根据域名检验智商?这是一道送分题!
- Swift学习之枚举