Robot Framework 教程 (2) - 页面元素定位
上一篇文章中,简单模拟了一个baidu搜索并截图的过程,在搜索过程中,我们需要对搜索框、搜索按钮进行定位。本篇文章主要介绍一下具体的定位方法。
我们的脚本如下:
*** Settings ***
Library Selenium2Library
*** Test Cases ***
firefox兼容性
Open Browser https://www.baidu.com/ ff
Input Text id=kw LeetTest
Click button id=su
Sleep 2
Capture Page Screenshot ff.png
Close Browser
这里我们用到了Selenium2Library进行浏览器控制。接下来查找Selenium2Library的官方文档,来查看如何进行页面元素定位。
在Github上搜索Selenium2Library,项目地址为
https://github.com/rtomac/robotframework-selenium2library
查看其wiki,可以找到它的官方文档
http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html
其中的Locating or specifying elements 章节,介绍了进行元素定位的几种方法:
以脚本
Click Element my_element
为例,定位方法可采用以下方法:
|
Strategy |
Example |
Description |
描述 |
|
identifier |
Click Element | identifier=my_element |
Matches by @id or @name attribute |
匹配 id 或 name 属性 |
|
id |
Click Element | id=my_element |
Matches by @id attribute |
匹配 id 属性 |
|
name |
Click Element | name=my_element |
Matches by @name attribute |
匹配 name 属性 |
|
xpath |
Click Element | xpath=//div[@id='my_element'] |
Matches with arbitrary XPath expression |
匹配 Xpath 表达式 |
|
dom |
Click Element | dom=document.images[56] |
Matches with arbitrary DOM express |
匹配 DOM表达式 |
|
link |
Click Element | link=My Link |
Matches anchor elements by their link text |
匹配锚点的链接文字 |
|
partial link |
Click Element | partial link=y Lin |
Matches anchor elements by their partial link text |
匹配锚点的部分链接文字 |
|
css |
Click Element | css=div.my_class |
Matches by CSS selector |
匹配 CSS |
|
jquery |
Click Element | jquery=div.my_class |
Matches by jQuery/sizzle selector |
匹配jQuery/sizzle选择器 |
|
sizzle |
Click Element | sizzle=div.my_class |
Matches by jQuery/sizzle selector |
匹配jQuery/sizzle选择器 |
|
tag |
Click Element | tag=div |
Matches by HTML tag name |
匹配元素的HTML tag 名称 |
|
default* |
Click Link | default=page?a=b |
Matches key attributes with value after first '=' |
匹配第一个=后面的关键属性 |
具体到我们的测试脚本
InputText id=kw LeetTest
这里我们采用的是使用id进行定位,找到了id为kw的文本框,并输入了关键字LeetTest。
接下来试着使用其它方法进行元素定位。首先从浏览器中打开baidu首页,使用调试工具查看输入搜索关键词的文本框元素,其html代码如下:

<input class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off" type="text">
根据文档中给出的几种定位方法,我们可将我们的测试脚本更改如下
1.Identifier:Identifier将会对id和name进行匹配,无论是id还是name,只要符合关键字要求,就将被匹配为所选元素。
这里我们可以使用其id作为关键字
Input Text identifier=kw LeetTest
或是name作为关键字
Input Text identifier=wd LeetTest
2.Name,Name只会对元素的name属性做匹配
Input Text name=wd LeetTest
3.Xpath
XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。XPath提供了绝对路径和相对路径两种定位方法。
首先使用绝对路径进行定位。绝对路径从页面的html文档最初部分开始,逐层向内进行定位。
InputText Xpath = /html/body/div[3]/div[1]/div[1]/div[1]/div[1]/form/span[1]/input LeetTest
但在实际使用中,baidu的首页会由于浏览器或环境的不同发生样式变化,对应的xpath绝对地址会发生变化,这个时候就需要使用xpath相对路径。xpath的相对路径
1)可以通过id/name等元素属性定位到目标位置
InputText Xpath = /input[@id=’kw’] LeetTest
2)也可以先确定一个相对固定的元素(这里我们以form为例),之后再从该元素开始,寻找相对位置的元素。
InputText xpath = /form[@id=’form’]/span[1]/input LeetTest
4.Css
使用css匹配策略,可以按照浏览器对页面元素进行渲染时的css匹配策略,定位到该元素。支持css语法中的 . # > 等关键字。
InputText css=.s_ipt LeetTest InputText css=#kw LeetTest InputText css=[name=wd] LeetTest
关于xpath以及css的详细定位方法,之后会进行详细描述,这里只给出了几个最简单的例子。
5.Jquery及sizzle
Sizzle是jQuery作者John Resig新写的DOM选择器引擎,速度号称业界第一。jquery从1.3开始,使用了新的选择器–sizzle。效率超过了以前的jquery版本以及目前能见到的其他选择器。
可以参考以下文章:
http://www.cnblogs.com/xesam/archive/2012/02/15/2352466.html
除以上几种方法外,在官方文档中还给出了dom、link 、 partial link 、 tag 、 default 等几种定位方案,相对以上介绍的5种方案来说,并不常用,这里不做过多描述。
以上即为Robot Framework在实际使用过程中常用的元素定位方法,基于这些方法,我们可以实现对多种格式元素的自动定位,以便于我们进一步部署自动化测试。
在我们实现了对元素的定位之后,我们需要做的是为脚本中的如搜索关键字等变量制定变量表,以批量进行自动化测试,在下一篇文章中,我们将对如何使用resource组织测试数据进行介绍
Robot Framework 教程 (2) - 页面元素定位的更多相关文章
- Robot Framework自动化测试二(元素定位)
前言 在学习的过程中,可能会误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加 ...
- 学习使用Robot Framework自动化测试框架-web元素定位
转:http://blog.csdn.net/u012145166/article/details/50342569 1.name和id 其中使用到了name和id定位.但有时候由于开发人员的疏忽或者 ...
- Robot Framework 教程 (3) - Resource及关键字 的使用
From:http://www.cnblogs.com/buaawp/p/4754399.html Robot Framework 教程 (3) - Resource及关键字 的使用 在进行软件自动化 ...
- Robot FrameWork 教程链接
1. Robot Framework 教程: http://cgmblog.sinaapp.com/html/category/robot-framework 2. Robot Framework ...
- java selenium webdriver实战 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- 页面元素定位 XPath 简介
页面元素定位 XPath 简介 本文所说的 Xpath 是用于 Selenium 自动化测试所使用到的,是针对XHTML网页而言的一种页面元素的定位表示法. XPath 背景 XPath即为XML路径 ...
- Python3.x:Selenium中的webdriver进行页面元素定位
Python3.x:Selenium中的webdriver进行页面元素定位 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver ...
- java selenium webdriver第二讲 页面元素定位
自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...
- 5、通过Appium Desktop实现页面元素定位
之前我们已经安装了Appium Desktop,下面就让我们使用Appium Desktop实现页面元素定位 1.首先我们打开Appium Desktop,进入如下界面,点击Start Server ...
随机推荐
- 北京Uber优步司机奖励政策(4月22日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 【LG3248】[HNOI2016]树
[LG3248][HNOI2016]树 题面 洛谷 题解 因为每次你加入的点是原树上某一棵子树 那么我们一次加入一个点,代表一棵子树加到大树下面 那么我们要找到一个点在一个大点中用主席树在\(dfs\ ...
- Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)
首页 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 小程序 消息 登录注册 关闭 quartz_Cron表达式一分钟教程 09-05 ...
- 洛咕 P2467 [SDOI2010]地精部落
同波浪,简单dp. 高度从1到n插入山脉,设f[i][j][k]表示插入了i个山脉,组成了j段,边界上有k个山脉的方案数. 那么新插入的山脉只会:插入在边界上且自己是一段.插入在边界上且与最左边的段相 ...
- ant property file刷新不及时
一.问题 ant脚本定义file的property,有时往里面写了新的值,去访问时还是旧的值 二.原因分析 应该是已定义的file property,后续更新其值的时候,ant的内存缓存没有及时更新, ...
- C#,清晨随手写
关于昨晚“猜拳”的博客 大家一定要记得,C#的书写规范是很严格的 很严格很严格很严格 简单的说 下面这样就没办法取值 但是这样就可以取值 插眼,开撸
- 阿超的烦恼 javaScript篇
幼儿园级1-100随机数运算 实现目标 1.点击随机生成两个数并进项随机的四则运算. 2.答案暂时隐藏,等孩子做完题后点击答案处显示答案. 3.背景设置的卡通些,激发孩子阅读兴趣........... ...
- 用C链表实现约瑟夫环问题
问题:设有n个人围成一个圆圈,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人再次出列,如此反复,直到所有的人全部出列为止.对于任意给定的n.s.m,求按出列次序 ...
- JAVA之运算符优先级
Java运算符优先级从高到低 运算符 结合性 [ ] . ( ) (方法调用) 从左向右 ! ~ ++ -- +(一元运算) -(一元运算) 从右向左 * / % 从左向右 + - 从左向右 < ...
- Oracle之带参存储过程(存储过程中for循环调用存储过程)
--带参存储过程create or replace procedure testdate(v in number) is i number; begin i:=v; insert into test_ ...