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

本文作者:张永清,如果转载请注明出处RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下),否则追求一切法律责任。

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             

运行结果如下:如下图所示。

本文作者:张永清,如果转载请注明出处RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下),否则追求一切法律责任。

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来进行元素的定位,当列表中传入多个值时,默认选择最后一条,如果传入的是一个空列表,那么会默认选择这个列表中的所有值。

本文作者:张永清,如果转载请注明出处RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下),否则追求一切法律责任。

示例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自动化测试框架-常用断言关键字

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自动化测试框架-MongoDBLibrary库的使用

原文地址:https://www.cnblogs.com/laoqing/p/11966769.html

时间: 2024-07-28 23:09:00

RobotFramework自动化测试框架-Selenium Web自动化(三)关于在RobotFramework中如何使用Selenium很全的总结(下)的相关文章

RobotFramework自动化测试框架-MongoDBLibrary库的使用

笔者接着 RobotFramework自动化测试框架-DatabaseLibrary库的使用(对数据库的操作) 继续分享robotframework 对数据库中的MongoDB的详细操作.这是笔者第二篇关于robotframework 对数据库的操作的分享介绍. MongoDB是非常常用的一个非关系型数据库,在RobotFramework中,也提供了对MongoDB数据库测试操作的支持.我们可以通过在浏览器中访问github的网站地址 https://github.com/iPlantColla

Selenium Web 自动化

1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用API 4 Selenium Web 自动化 - 项目实战环境准备 5 Selenium Web 自动化 - 项目实战(一) 6 Selenium Web 自动化 - 项目实战(二) 7 Selenium Web 自动化 - 项目实战(三)

RobotFramework自动化测试框架(1)- RobotFramework简介

对于RobotFramework自动化测试框架,我这里会从三个单元进行阐述,希望能对你有帮助. RobotFramework简介 RobotFramework是什么? Robotframework 是由python编写的,一个开源的基于关键词驱动的自动化测试框架,它可以做基于UI或者接口的验收测试,有着非常简单易用的语法.它的一大特点就是可以使用java&python去扩展自定义一些测试库以及基于一些已有的关键词自定义一些高级关键词,这就意味着如果官方以及第三方提供的一些测试库没法满足项目的测试

Selenium Web 自动化 - Selenium常用API

Selenium Web 自动化 - Selenium常用API 2016-08-01 1 WebElement相关方法2 iFrame的处理3 操作下拉选择框4 处理Alert5 处理浏览器弹出的新窗口6 执行JS脚本7 等待元素加载8 模拟键盘操作9 设置浏览器窗口大小10 上传文件11 Selenium处理HTML5 1 WebElement相关方法 Method   Summary void clear() If   this element is a text entry elemen

Selenium Web 自动化 - 如何找到元素

Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp 2. 定位方式解析 Selenium WebDriver 提供一个先进的技术来定位 web 页面元素.Selenium 功能丰富的API 提供了多个定位策略如:Name.ID.CSS 选择器.XPath 等等,如下图所示: 一般会用ID来定位,因为它是唯一的,xpath也比较通用,火狐浏览器插件:f

Selenium Web 自动化 - Selenium(Java)环境搭建

Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 第1章 Selenium环境搭建 1.1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.2 安装和配置JDK 安装目录尽量不要有空格  D:\Java\jdk1.8.0_91; D:\Java\jre8 设置环境变量: “我的电脑”->右键->“

RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍Webdriver,Webdriver已经被很多浏览器所兼容.WebDriver在自动化脚本和浏览器之间充当的角色和之前介绍的Appium很像. 由于现在很多的浏览器都已经主动支持和兼容了WebDriver,所以Webdriver在启动后,会确认浏览器的native component是否存在可用而且

RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary库其它的常见自动化关键字

关键字 使用描述 Close Application 关闭掉当前已经打开的APP Application,该关键字不需要接收任何的参数,但是使用该关键字的前提是已经打开了一个APP Application. Close All Applications 关闭掉当前已经打开的所有的APP Application,该关键字不需要接收任何的参数. Background App 让当前APP Application 运行在后台,该关键字接收一个参数[后台运行的时间],示例: Background App

RobotFramework自动化测试框架的基础关键字(三)

1.1.1        如何定义一个字典 此处我们说的字典,其实就等同于python语言中的字典,和列表一样,字典也是python语言中非常常用的一种数据结构,也类似于Java 语言中的Map. 在RobotFramework中,使用Create Dictionary来床架一个字典,比如我们定义一个字典:Dict1,并且我们再创建字典时,向字典中添加两个键值对,并且使用log many 关键字将这个字典中的内容全部输出出来. Log many 关键字类似于log 关键字,不同的是,log关键字