RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)
本文紧接着RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)继续分享RobotFramework中如何使用Selenium进行自动化测试。
本文章节目录:
1、Get Value
2、Get Webelements和Get Webelement
3、Get Window Titles
4、Go Back 和 Go To
5、Get List Items
6、Get Selected List Value
7、Select From List
本文作者:张永清,如果转载请注明出处,否则追求一切法律责任。
1、Get Value
Get Value 关键字用于获取某个元素标签对应的value属性,该关键字接收[ locator ]这一个参数,locator可以通过id,name,xpath等都可以进行定位。
示例1:这里我们以访问博客园的登录页面为示例,我们这里获取登录按钮对应的value,如下图所示。
Open Browser https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F chrome
${value} Get Value id=signin
log ${value}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0012
20180728 13:34:51.578 : INFO : Opening browser 'chrome' to base url 'https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F'
20180728 13:35:00.116 : INFO : get_attribute value
20180728 13:35:00.124 : INFO : ${value} = 登 录
20180728 13:35:00.125 : INFO : 登 录
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0012
2、Get Webelements和Get Webelement
Get Webelements 关键字用来获取所有获得的WebElement对象的列表,该关键字接收[ locator ]这一个参数,locator可以通过id,name,xpath等都可以进行定位。
Get Webelement关键字和Get Webelements很类似,只不过Get Webelement 只会返回匹配到的第一个WebElement对象。
示例1:访问百度首页,然后根据locator 为name=tj_trnews来获取到可以匹配到的所有的WebElement对象的列表
Open Browser http://www.baidu.com chrome
${ement} Get Webelements name=tj_trnews
log ${ement}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0013
20180728 14:54:42.820 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 14:54:50.182 : INFO : ${ement} = [<selenium.webdriver.remote.webelement.WebElement (session="47f749d3fcd2d5037a56e6ada80f38ba", element="0.8260127734608302-1")>]
20180728 14:54:50.183 : INFO : [<selenium.webdriver.remote.webelement.WebElement (session="47f749d3fcd2d5037a56e6ada80f38ba", element="0.8260127734608302-1")>]
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0013
示例2:访问百度首页,然后根据locator 为name=tj_trnews来获取匹配到的第一个WebElement对象
Open Browser http://www.baidu.com chrome
${ement} Get Webelement name=tj_trnews
log ${ement}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0014
20180728 15:01:58.469 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 15:02:07.093 : INFO : ${ement} = <selenium.webdriver.remote.webelement.WebElement (session="0382b83b32515ea731a4497ab3699131", element="0.20523497043976824-1")>
20180728 15:02:07.094 : INFO : <selenium.webdriver.remote.webelement.WebElement (session="0382b83b32515ea731a4497ab3699131", element="0.20523497043976824-1")>
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0014
3、Get Window Titles
Get Window Titles用来获取当前已经打开的浏览器窗口的所有Title。该关键字接收不需要接收任何的参数。
示例1:这里我们打开百度的首页,然后点击首页右上角的”新闻”链接按钮,挑战到百度新闻页面,最后获取该窗口下的所有Title。
Open Browser http://www.baidu.com chrome
Click Link 新闻
${title1} Get Window Titles
log ${title1}
Close All Browsers
运行结果如下:如下图所示。
本文作者:张永清,如果转载请注明出处,否则追求一切法律责任。
4、Go Back 和 Go To
Go Back 和 Go To关键字分别用来模拟对浏览器进行后退和前进的操作。Go Back关键字不需要接收任何的参数,Go To关键字接收一个[ url ]参数。url是一个需要跳转到的地址。
示例1:这里我们首先访问百度首页,之后点击”新闻”链接,跳转到百度新闻页面,然后我们执行Go Back 回退到百度首页,最后使用Go To跳转到博客园首页,在每一个操作中,我们都记录了浏览器的窗口标题。
Open Browser http://www.baidu.com chrome
Click Link 新闻
${title1} Get Window Titles
log ${title1}
Go Back
${title2} Get Window Titles
log ${title2}
Go To https://www.cnblogs.com/
${title3} Get Window Titles
log ${title3}
Close All Browsers
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0016
20180728 15:26:17.443 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
20180728 15:26:24.906 : INFO : Clicking link '新闻'.
20180728 15:26:27.947 : INFO :
Altogether 1 item.
1: 百度新闻——全球最大的中文新闻平台
20180728 15:26:27.948 : INFO : ${title1} = [u'\u767e\u5ea6\u65b0\u95fb\u2014\u2014\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u65b0\u95fb\u5e73\u53f0']
20180728 15:26:27.949 : INFO : [u'\u767e\u5ea6\u65b0\u95fb\u2014\u2014\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u65b0\u95fb\u5e73\u53f0']
20180728 15:26:28.239 : INFO :
Altogether 1 item.
1: 百度一下,你就知道
20180728 15:26:28.240 : INFO : ${title2} = [u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']
20180728 15:26:28.242 : INFO : [u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']
20180728 15:26:28.244 : INFO : Opening url 'https://www.cnblogs.com/'
20180728 15:26:31.021 : INFO :
Altogether 1 item.
1: 博客园 - 开发者的网上家园
20180728 15:26:31.021 : INFO : ${title3} = [u'\u535a\u5ba2\u56ed - \u5f00\u53d1\u8005\u7684\u7f51\u4e0a\u5bb6\u56ed']
20180728 15:26:31.022 : INFO : [u'\u535a\u5ba2\u56ed - \u5f00\u53d1\u8005\u7684\u7f51\u4e0a\u5bb6\u56ed']
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0016
从运行的日志可以很清楚的看到Go Back 和 Go To关键字在使用时起到的效果。
5、Get List Items
Get List Items关键字用来获取获取页面中一个下拉列表中所有的下拉选项,关键字接收[ locator ]一个参数,locator可以通过id或者name等来进行元素定位。
示例1:我们以访问百度贴吧中如下的下拉框为例来对该关键字的使用进行说明,如下图所示。
Open Browser http://tieba.baidu.com/f/search/adv?red_tag=u3387165643 chrome
@{Items} Get List Items name=sm
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0023
20180728 23:27:16.635 : INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'
20180728 23:27:24.714 : INFO : get_attribute multiple
20180728 23:27:24.878 : INFO : @{Items} = [ 按时间倒序 | 按时间顺序 | 按相关性排序 ]
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0023
6、Get Selected List Value
Get Selected List Value关键字用于获取页面中选中的一个下拉列表的Value值,关键字接收[ locator ]一个参数,locator可以通过id或者name等来进行元素定位。
示例1:这里我们依然以访问百度贴吧中如下的下拉框为例来对该关键字的使用进行说明,如下图所示
Open Browser http://tieba.baidu.com/f/search/adv?red_tag=u3387165643 chrome
${Value} Get Selected List Value name=sm
log ${Value}
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0025
20180728 23:54:56.379 : INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'
20180728 23:55:05.545 : INFO : get_attribute multiple
20180728 23:55:05.599 : INFO : get_attribute value
20180728 23:55:05.609 : INFO : ${Value} = 1
20180728 23:55:05.610 : INFO : 1
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0025
从运行结果看,刚好与我们通过浏览器的开发工具看到的value值完全一致,如下图所示。
7、Select From List
Select From List关键字用来模拟从指定的下拉列表中选择指定的下拉列表选项,该关键字接收[ locator | *items ]多个参数,locator可以通过id,name来进行元素的定位,当列表中传入多个值时,默认选择最后一条,如果传入的是一个空列表,那么会默认选择这个列表中的所有值。
示例1:这里我们继续访问百度贴吧,我们的目标是通过Select From List关键字选中这个选项。我们通过浏览器的开发者工具可以看到
这个选项对应的value为2,所以我们在关键字的参数中传入的参数为2,如下图 所示。
Open Browser http://tieba.baidu.com/f/search/adv?red_tag=u3387165643 chrome
Select From List name=sm 2
sleep 5
Close Browser
运行结果如下:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0031
20180729 09:53:40.279 : INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'
20180729 09:53:49.543 : INFO : Selecting option(s) '2' from list 'name=sm'.
20180729 09:53:49.582 : INFO : get_attribute multiple
20180729 09:53:54.675 : INFO : Slept 5 seconds
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0031
从实际执行的效果看,已经可以成功选中这个列表,如下图所示。
备注:本文内容摘选自作者自己出版的Robot Framework自动化测试框架核心指南 一书。
Robot Framework自动化测试框架核心指南京东官方购买
Robot Framework自动化测试框架核心指南电子版试读
Robot Framework自动化测试框架核心指南天猫官方旗舰店购买
Robot Framework自动化测试框架核心指南当当网购买
Robot Framework自动化测试框架核心指南 作者签名版本购买
相关博文汇总:
RobotFramework下的http接口自动化Create Http Context关键字的使用
RobotFramework下的http接口自动化Get关键字的使用
RobotFramework下的http接口自动化post关键字的使用
RobotFramework下的http接口自动化Get Response Body关键字的使用
RobotFramework下的http接口自动化Get Response Status 关键字的使用
RobotFramework下的http接口自动化Get Response header 关键字的使用
RobotFramework下的http接口自动化Set Request Header 关键字的使用
RobotFramework下HttpLibrary库其它关键字
RobotFramework下的http接口自动化Set Request Body 关键字的使用
RobotFramework下的http接口自动化Follow Response关键字的使用
RobotFramework自动化测试框架的基础关键字(一)
RobotFramework自动化测试框架的基础关键字(二)
RobotFramework自动化测试框架的基础关键字(三)
RobotFramework自动化测试框架的基础关键字(四)
RobotFramework自动化测试框架的基础关键字(五)
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍
RobotFramework自动化测试框架-移动手机自动化测试Open Application关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字
RobotFramework自动化测试框架-移动手机自动化测试Input Text和Click Button关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Clear Text关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click A Point关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Click Element At Coordinates关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Element Location关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Get Network Connection Status和Set Network Connection Status关键字的使用
RobotFramework自动化测试框架-移动手机自动化测试Element Attribute Should Match关键字的使用
RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)
RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser
RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
RobotFramework自动化测试框架-MongoDBLibrary库的使用
RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)的更多相关文章
- RobotFramework自动化测试框架-Selenium Web自动化(二)关于在RobotFramework中如何使用Selenium很全的总结(上)
好久没有继续分享关于自动化测试相关的东西了,自动化在现今的测试领域已经越来越重要了,大部分公司在测试岗位招聘中都需要会相关的自动化测试知识.而 RobotFramework自动化测试框架 是自动化测试 ...
- RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍
在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...
- RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作)
在自动化过程中,我们经常需要连接不同的数据库,并且对数据库进行很多不同的操作,RobotFramework中,提供了DatabaseLibrary这个库来操作数据库,我们可以按照官网中的说明来安装Da ...
- RobotFramework自动化测试框架-使用Python编写自定义的RobotFramework Lib
使用Python构建Lib工程 可以用来开发Python Lib的IDE工具有很多,常见的有Pycharm,Eclipse with PyDev插件等,而且在RobotFramework官网中也已经提 ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Selenium Web 自动化 - 项目实战(一)
Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...
- Selenium Web 自动化 - 项目持续集成
Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备 1.1 安装git 1.2 安装jenkins 1.3 安装jenkins插件 1.4 jekins ...
- Selenium Web 自动化
1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...
- Selenium Web 自动化 - 项目实战环境准备
Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG 1.1 安装TestNG 1.2 添加TestNG类库2 部署Maven 2.1 mav ...
随机推荐
- Sqlsever新增作业执行计划傻瓜式操作
开启数据库代理,启动不了请检查数据库服务的代理是否开启 建议Sqlserver2008以上的版本 完整步骤如下: 查看效果: 10秒以后再来查询:发现数据有多了一些,是不是很简单,嘻嘻!
- JVM(8) 线程安全与锁优化
面向过程编程:程序编写以算法为核心,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间的客体,程序代码则用于处理这些数据.这种思维方式直接站在计算机的角度去抽象问题和解决问题,称为面向过程 ...
- OptimalSolution(1)--递归和动态规划(2)矩阵的最小路径和与换钱的最少货币数问题
一.矩阵的最小路径和 1 3 5 9 1 4 9 18 1 4 9 18 8 1 3 4 9 9 5 8 12 5 0 6 1 14 14 5 11 12 8 8 4 0 22 22 13 15 12 ...
- Xbim.GLTF源码解析(四):轻量化处理
原创作者:flowell,转载请标明出处:https://www.cnblogs.com/flowell/p/10839433.html 在IFC标准中,由IfcRepresentationMap支持 ...
- SpringBoot整合MybatisPlus3.X之自定义Mapper(十)
pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...
- 中文预训练模型ERNIE2.0模型下载及安装
2019年7月,百度ERNIE再升级,发布持续学习的语义理解框架ERNIE 2.0,及基于此框架的ERNIE 2.0预训练模型, 它利用百度海量数据和飞桨(PaddlePaddle)多机多卡高效训练优 ...
- 调试webpack
调试webpack 1. 摘要 用过构建工具webpack的朋友应该都体会,面对其几百行的配置内容如大海一小舟,找不到边.看文档查百度,对其构建的生命周期看了又看.最终还是很茫然.原因很简单,构建配置 ...
- 【C#多线程】2.线程池简述+两种传统的异步模式
线程池简述+两种传统的异步编程模式 1.线程池简述 首先我们要明确一点,编程中讲的线程与平时我们形容CPU几核几线程中的线程是不一样的,CPU线程是指逻辑处理器,比如4核8线程,讲的是这个cpu有8个 ...
- Netty连接处理那些事
编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo.Rocketmq.Hadoop等,针对高性能RPC,一般都是基 ...
- 『图论』有向图强连通分量的Tarjan算法
在图论中,一个有向图被成为是强连通的(strongly connected)当且仅当每一对不相同结点u和v间既存在从u到v的路径也存在从v到u的路径.有向图的极大强连通子图(这里指点数极大)被称为强连 ...