前言

有时候一个页面上有多个对象需要操作,如果一个个去定位的话,比较繁琐,这时候就可以定位一组对象。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

RF交流QQ群232607095

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

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

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

  2. RobotFramework自动化2-自定义关键字【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/robotframework/ 前言 有时候一个页面上有多个对象需要操作,如果一个个去定 ...

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

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

  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. hdu 5078(2014鞍山现场赛 I题)

    数据 表示每次到达某个位置的坐标和时间 计算出每对相邻点之间转移的速度(两点间距离距离/相隔时间) 输出最大值 Sample Input252 1 9//t x y3 7 25 9 06 6 37 6 ...

  2. GUC-6 Callable 接口

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.ut ...

  3. python日期格式转换小记

    utc格林时间==>东八区北京时间 原始日期格式: utctime = ‘2016-07-26 10:08:29’ localtime = (datetime.datetime.fromtime ...

  4. BZOJ 1861: [Zjoi2006]Book 书架 (splay)

    1861: [Zjoi2006]Book 书架 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 1453  Solved: 822[Submit][Stat ...

  5. USACO 4.3 Buy Low, Buy Lower

    Buy Low, Buy Lower The advice to "buy low" is half the formula to success in the stock mar ...

  6. 006 python的面向对象基础

    1.类 描述具有相同属性与方法的对象的集合. 2.创建类 使用class来创建一个新类,class之后为类的名称并以冒号结尾 3.程序 #!/usr/bin/python # -*- coding: ...

  7. 41:和为S的两个数

    import java.util.ArrayList; import java.util.Collections; /** * 面试题41:和为S的两个数 * 输入一个递增排序的数组和一个数字S,在数 ...

  8. 在Ubuntu18.04中QT编程的环境构建(转)

    在Ubuntu18.04中QT编程的环境构建 原点分析 百家号06-2110:14 如果说QT大家觉得陌生的话,那么 Windows 早年推出的C++图形用户界面的应用程序开发框架MFC,应该是耳熟能 ...

  9. awk 基本函数用法

    gsub函数有点类似于sed查找和替换.它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行.第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为 ...

  10. BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3483 [题目大意] 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模 ...