前言

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

    1.设置密码长度 vim /etc/pam.d/system-authpassword requisite pam_cracklib.so try_first_pass retry=3 minlen= ...

  2. RabbitMQ介绍及安装部署

    本节内容: RabbitMQ介绍 RabbitMQ运行原理 RabbitMQ重要术语 三种ExchangeType RabbitMQ集群种类 集群基本概念 镜像模式部署集群 一.RabbitMQ介绍 ...

  3. GMM与EM算法

    用EM算法估计GMM模型参数 参考  西瓜书 再看下算法流程

  4. ECSHOP中 {insert name='ads' id=$ads_id num=$ads_num}含义

    <div class="smallban">        <ul>                <!-- TemplateBeginEditabl ...

  5. nc工具学习

    0x00.命令详解 基本使用 想要连接到某处:nc  [-options] ip port 绑定端口等待连接:nc -l -p port ip 参数: -e prog 程序重定向,一旦连接,就执行 [ ...

  6. 解决在ubuntu环境下, sublime不能输入中文的问题

    sublime text很好用,但是ubuntu下不能输入中文,这是一个很大的问题.网上已经有很多方法,这里将我自己使用的方法记录总结一下 首先,将你的操作系统升级到最新版: sudo apt-get ...

  7. 【BZOJ 2318】 2318: Spoj4060 game with probability Problem(概率DP)

    2318: Spoj4060 game with probability Problem Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 371  Sol ...

  8. 【推导】Codeforces Round #472 (rated, Div. 2, based on VK Cup 2018 Round 2) B. Mystical Mosaic

    题意:给你一个棋盘的最终局面. 你的一次操作可以选择一些行和列,将它们的交叉点染黑,不能重复选择某行或者某列.问你是否能经过数次操作之后,达到目标局面. 就枚举所有黑点,如果该点行列都没被标记,就给它 ...

  9. hdu 4745 区间dp

    题意:求一个环的最长回文序列,是序列不是串 链接:点我 起点是可以任意的, 所以只要求出每个区间的最长回文序列之后取max(dp[1][i]+dp[i+1][n]),即可得最终答案 本来是想扩展两倍的 ...

  10. Elasticsearch基础分布式架构

    写在前面的话:读书破万卷,编码如有神-------------------------------------------------------------------- 参考内容: <Ela ...