Robot Framework自动化测试-元素定位之xpath

用xpath定位元素几乎是万能的了,可以定位到99%的元素;

如果一个元素没有id 没有name那我们该怎么定位该元素了,第一想到的就是用xpath了。

在网上copy了一段代码,就以这个做说明吧,xpath定位元素分相对路径和绝对路径,主要说明下相对路径的用法。

示例代码如下:

<html>
  <body link="#0000cc">
    <div id="wrapper" style="display: block;">
      <div id="content" style="display: block;">
      <div id="u1" style="display: block;">
         <div id="m">
             <p id="lg">
             <p id="nv">
             <div id="fm">
                 <form id="form" class="fm" action="/s" name="f1">
                     <span class="s_ipt_wr">
                         <input id="kw"  type="text" name="wd">
        ......
    </body>
 </html>

1、绝对路径定位

使用绝对路径的方式定位除非是其父级元素都没有一个唯一识别的元素才使用该方式;

假如要定位到输入框,那么使用绝对路径的方式为:

xpath= /html/body/div[1]/div[2]/div[1]/div[1]/form/span[1]/input

就是从根部开始找,一级一级往下走,如果有同级别的需要用[]标明序号,从1开始

2、相对路径定位

下面各方法中都是以定位到input做说明,以下不再说明。

2.1 元素本身找

xpath=//input[@id=”kw” ] 或者xpath=//*[@id=”kw” ]

//input表示匹配input标签的所有元素

//*表示匹配所有元素的标签

当然不限于用id,也可以xpath=//*[@type=”text”]

注意:要保证这些元素可以唯一的识别一个元素

2.2 布尔值写法

如果input标签中 id不是唯一的,type也不是唯一的,但在该页面中包含该id和type的只有这个元素时,那么我们可以用组合的方式定位

xpath=//*[@id=”kw” and @type=”text”]

当然还有or 或,慎用

xpath=//*[@id=”kw” or @type=”text”]

2.3 找父级

如果自己没有唯一的标志,那么就找自己的上级(父级),或者上级的上级,以此类推。

找父级:xpath=//span[@class=’s_ipt_w’]/input

找父级的父级:xpath=//form[@id=”form”]/span[1]/input

2.4 跳级

如果需要定位的元素在该页面不是唯一,但在某个容器内是唯一的,当然那个容器必须要有唯一的标志;

跳级的话要用两个//

那么可以这样表示:xpath=//div[@id=”wrapper”]//input [@id=”kw”]

注意:该方法要保证在某容器内该元素是唯一的。

2.5 轴

这里不介绍图中的每个方法,只以第一个做说明;

用我实际工作中的介绍下,如图:

要定位要编辑按钮(图片底部处)

假如要定位列表中的某些数据某个按钮,但不能确定他的位置在第一个还是第二个还是其他,那么可以用轴的方式定位;

xpath=//*[@id=”main-container”]//div[@class=”tabbable”]//li/h3[starts-with(text(),”【图片素材】”)]/ancestor::li[1]/div[3]/a[@title=”编辑”]

ancestor的前半部分,表示先定位到要找名称以“【图片素材】”开头的数据;后半部分定位到名称处后,再根据ancestor的功能(ancestor表示选取当前节点的所有先辈,那么要从名称处的父级开始定位)定位要需要定位的元素“编辑”按钮。

注意:该方法很实用,能定位到比较复杂的元素,还要加两个::

2.6 步

语法:轴名称::节点测试[谓语]

这里介绍下last();上面的轴方法中,还存在一个问题就是,一条数据中图片数量不同的话,上面的方法又不能使用了,需用到步方法

xpath=//*[@id=”main-container”]//div[@class=”tabbable”]//li/h3[starts-with(text(),”【图片素材】”)]/ancestor::li[1]/div[last()]/a[@title=”编辑”]

因为编辑按钮在最后一个div中,所以前面不管有多少图片的话他总是会定位到最后一个,如果要定位要其他的则在()输入数字即可。

差不多了,用以上这些方式进行定位基本能应付常规工作中的定位了。

时间: 2024-10-30 22:50:47

Robot Framework自动化测试-元素定位之xpath的相关文章

Robot Framework自动化测试---元素定位

不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是"比较",在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的

Robot framework之元素定位实战

1.1  id 和name 定位 Web页面都是由许多标签和元素组成的,每个标签或元素都是很多属性,好比一个人   id 和name 可以看作一个人的身份证号和姓名.下面看下教育局招生系统的用户名输入框的标签id 和name属性值. <input id="txtUserName" class="form-control account-input" type="text" required="" name="a

Robot Framework+WebDriver元素定位

Selenium支持的定位方式: 常用的定位方式有id,name,xpath等…… 上一篇中的登陆实例,定位使用xpath后的样式为 XPath定位 ——使用属性名称为元素:xpath=//input[@name='']; ——使用部分属性值定位元素: ——使用值来匹配任意属性及元素:xpath=//input[@*='username']; 注:后续会对XPath定位进行详细的补充~

Robot Framework自动化测试(二)---元素定位

说明: 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot framework是个测试框架,之所以可以拿来做web UI层的自动化是国为我们加入了selenium2的API.比如笔者所处工作中,更多的是拿Robot framework来做数据库的接口测试,当然,需要先将相关的数据库包导入. 那么测试框架的本质是什么?个人觉得有以下几个方面. 1.比较 测试实质就是“比较”,在测试之前需要先写用例,假设经过各种操作之后会得到一个预期的结果,然后,在测试的过

Robot Framework自动化测试框架(二):WEB自动化

摘要: WEB自动化离不开selenium,当然robot framework也是一样,结合了selenium,需要安装:pip install selenium2library,习惯了编码写WEB自动化,robot framework基于关键字自动化的工具也还算可以,让测试变得更简单就好. 正文: 1.元素定位: 1.1 id或name定位 1.2 xpath定位 1.Xpath的绝对路径: Xpath = /html/body/div[1]/div[4]/div[2]/div/form/sp

不得不说--自动化测试元素定位与用例设计

关于自动化测试,经常被问到元素的定位 与 如何设计用例. 很多时间我也帮不了你解决实际的问题,只能从个人脚本谈谈如何看待这些问题. 不得不说之元素定位 虽然,本章写了十几篇文章来讲元素的定位与操作,对于碰到的一些常见功能,如何通过技巧来定位它们,但是在实际的自动化脚本开发中,不管是新手还是具有一定经验的老手,我们面临最多的问题仍然是元素的定位问题. 有时间元素定位非常简单,例如,我们只要知道这个元素有的id和name 就可以轻松的来定位到它:有时间元素的定位却非常的令人非常头疼,尽管我们用尽了所

Robot Framework自动化测试(一)---第一个脚本

最近工具中用Robot Framework框架来做自动化,所以,花时间学习了一下. =======所需环境=================== Python: https://www.python.org/ RF框架是基于python 的,所以一定要有python环境. Robot framework : https://pypi.python.org/pypi/robotframework/2.8.5 这个不是解释了,RF框架.虽然在做基于UI的自动化时,它展现出来的很像QTP,我之前也以为

Selenium2学习-002-Selenium2 Web 元素定位及 XPath 编写演示示例

此文主要对 Selenium2 的 Web 元素定位及 XPath 编写示例,敬请各位亲们参阅,共同探讨.若有不足之处,敬请各位大神指正,不胜感激! 通过 Firefox(火狐)浏览器的插件 Firebug + xpath checker ,结合三个示例来演示实现页面元素的定位及 xpath 路径编写.下面就一起开始我们的 Web 页面元素定位之旅吧... 首先,启动 Firefox(火狐)浏览器,并启动 Firebug 插件(按 F12 按键即可) 一.百度搜索框定位(元素的 ID) 网址输入

Robot Framework自动化测试框架(一)

摘要: Robot Framework是一款python编写的功能自动化测试框架.具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行.主要用于轮次很多的验收测试和验收测试驱动开发(ATDD). 正文: 1.环境搭建 1.1 robotframework安装:pip install robotframework 1.2 RIDE就是一个图形界面的用于创建.组织.运行测试的软件,robotframework-ride安装:pip install robo