本篇转自博客:上海-悠悠

原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/

前言

有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。Selenium2library提供了Get Webelements 关键字,用于定位一组元素

以百度页面为例,先定位一组对象,然后依次打开每个链接,检测返回结果。

一、定位一组对象

1.打开百度页面,定位右上角六个链接按钮

2.定位元素共同属性class=mnav

 

二、Get Webelements

1.在ride中找到对应关键字Get Webelements,从关键字介绍中可以看到,返回的是一个list对象

 

三、操作对象

1.打开浏览器

2.设置等待时间

3.获取界面上一组对象,返回给${s}

4.打开其中一个页面,然后获取title

5.用go back返回到首页

 

四、设置关键字

1.将上面的操作可以分为两个步骤,第一步是打开浏览器,第二步是点击某个链接

2.打开百度关键字

 

五、打开链接关键字

1.可以把点击的第几个元素设置为一个变量:${i}

2.把获取到的title作为返回结果,给这个关键字一个返回值:${title}

 

六、批量操作

1.把需要检查的结果放到一个list里

2.用for循环,循环点击操作链接

3.Should Contain断言,检查返回结果

4.最后操作完后关闭浏览器

 

七、最终代码

1.最终代码如下:

test010

${result}    Create List    糯米    新闻    hao123    地图    视频

...    贴吧

打开百度

:FOR    ${a}    in range    6

\    ${title}    打开链接    ${a}

\    log    ${title}

\    log    ${result[${a}]}

\    Should Contain    ${title}    ${result[${a}]}

close all browsers

*** Keywords ***

打开链接

[Arguments]    ${i}

[Timeout]

${s}    Get Webelements    css=.mnav

Click Element    ${s[${i}]}

sleep    3

${title}    Get Title

log    ${title}

go back

[Teardown]

[Return]    ${title}

打开百度

open browser    https://www.baidu.com/

Set Browser Implicit Wait    10

RobotFramework自动化2-自定义关键字【转载】的更多相关文章

  1. robotframework实战三--自定义关键字

    在rf的实战1中,我的登录获取验证码就使用了自定义关键字,具体怎么做的,如下 1.新建文件夹 新建一个文件夹,我的MyLibrary,并且存放在site-packages下 2.编写代码 在pytho ...

  2. Robotframework自动化5-基础关键字介绍2

    一:时间 1.获取当前时间 Get time   2.获取当月时间    ${yyyy} ${mm} ${day} Get Time year,month,day${time} Catenate SE ...

  3. RobotFramework自动化2-自定义关键字

    前言 有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象.Selenium2library提供了Get Webelements 关键字,用于定位一组元素 以百 ...

  4. RobotFrameWork中使用自定义关键字

    今天尝试在RF中使用一下自己写的关键字. 1.首先写一个py文件,如下,简单打印个message 2.在RF中点击library,把写的py文件加进来 3.使用函数mylog,有一个参数,也可以F5看 ...

  5. Robotframework自动化6-基础关键字介绍3

    这一章节介绍一下断言时用到的关键字,断言是写测试用例的必备,没有断言的测试用例是没有灵魂的. 一:Should Be Equal  Should Be Equal 是用来判断实践结果和预期结果是否一致 ...

  6. Robotframework自动化4-基础关键字介绍1

    前言 上一节已经介绍了APP的启动,那我们就会看到我们引用了一些关键字,对于AppiumLibrary都有哪些常用的关键呢,这一节主要介绍这一部分. AppiumLibrary 常用关键字介绍 1.关 ...

  7. 从零学习基于Python的RobotFramework自动化

    从零学习基于Python的RobotFramework自动化 一.        Python基础 1)      版本差异 版本 编码 语法 其他 2.X ASCII try: raise Type ...

  8. robotframework自动化系列:随机下拉框

    robotframework自动化系列:随机下拉框 随着项目自动化不断推进,在下拉框定位的时候出现些问题,每次下拉框选择都是相同的下拉选项,如果想每次选择的选项不一样,该如何实现呢,查找了很多资料,没 ...

  9. robotframework自动化系列:修改流程

    在上一小节中,新增流程操作已经完成.那么接下来就是修改的流程操作了,对于一个页面的修改如何操作呢? 针对修改修改操作是在一个已经存在的账号直接修改还是新添加一个账号再修改呢?从用例设计健壮性出发,我们 ...

随机推荐

  1. 14 Django的用户认证组件

    用户认证 auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: 1.1 .authentica ...

  2. oracle(sql)基础篇系列(三)——数据维护语句、数据定义语句、伪列

    DML语句 insert 向表中插入新的记录 --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 insert into dept2 values(50,'DANAME',' ...

  3. UIView和CALayer是什么关系?

    UIView显示在屏幕上归功于CALayer,通过调用drawRect方法来渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承自UIResponder,比起CALaye ...

  4. copyEvens

    public int[] copyEvens(int[] nums, int count) { int newIndex=0; int i=0; int newArray[] = new int[co ...

  5. 《数据结构》C++代码 栈与队列

    线性表中,先进先出的叫队列,先进后出的叫栈.队列常用于BFS,而在函数递归层数过高时,需要手动实现递归过程,这时候便需要写一个“手动栈”. 有时候,我们会有大量数据频繁出入队列,但同时存在其内的元素却 ...

  6. Python 3基础教程15-读文件内容

    前面两篇关于写文件和更新文件内容,我们最后都是手动去打开检查是否更新了.现在我们这里通过函数读取之前文件内容,打印到屏幕终端. 运行结果:

  7. (笔记) RealTimeRender[实时渲染] C2

    @author: 白袍小道 @来源:RealTime Render @建议书籍:龙书.RealTimeR第四版.GPUGem和PRO (来源:暗影不解释) 引点 这一章关注的管线中的管道功能,而非实现 ...

  8. 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘

    一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...

  9. Linq 聚合函数

    var WReserve = (from m in _db.W_RESERVE select m).ToList().LastOrDefault(); 必须ToList() 之后才能 last fir ...

  10. hdu 2899 Strange fuction (二分法)

    Strange fuction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...