学习使用Robot Framework自动化测试框架-web元素定位

转:http://blog.csdn.net/u012145166/article/details/50342569

1.name和id

其中使用到了name和id定位。但有时候由于开发人员的疏忽或者开发习惯的问题,会漏写name或者id属性。或者有时候如果页面很庞大,元素很多,也有可能出现两个一不小心定义了两个重复的id的情况。这样就无法进行唯一定位了。

2.xpath

前面所说的id和name属性就相当于是一个人的姓名。你可以通过姓名找到他。但是同名同姓的问题是存在的,而且有时候也不知道他的姓名,那就去就去他的家里找,一个人住的地方总是唯一的。所以这种方式几乎是万能的,能基本解决所有定位需求。

3.css

另外还有一种通过CSS进行定位的方式,这种方式也能解决大部分的定位问题,但是这种方法比较复杂,学习成本比较高。我自己也没有好好学习过,就不再介绍了。

4.使用firebug插件和firepath插件获取xpath和id,name

4.1插件的安装

那如何去获取定位所需要的id,name,xpath数据呢?因为Selenium默认是支持Firefox浏览器的,而Firefox又以其强大、数量庞大的可选插件著称,所以当然就会有相应的插件支持这个工作,也就是firebug和firepath。 
可能由于墙的原因,无法成功在线进行安装。可以在下载插件后,进行离线安装下载链接请猛戳这里。 
下载的文件无须解压,按下图方法安装即可。 

4.2使用示例

这里再以百度首页为例讲解两个插件的用法。 
打开网页后,按F12,可见到页面下方的一些可操作选项。

点击箭头1指向的这个鼠标形状的按钮,就可以开始定位元素了。点击要进行定位的元素,比如搜索编辑框。此时下方的网页源码处就会自动跳到相应的HTML代码处,方便直接查看其相应属性,就能从中获取我们所需要的name和id。

那怎么获取xpath呢?点击Firepath功能,进入Firepath视图,再次点击那个鼠标形状的按钮,开始选择元素。同样的,我们再选择编辑框。这时,页面就会自动显示出这个元素的xpath值,同时代码也会跳到相应的地方。

5.使用google chrome浏览器获取xpath和id,name

firefox能用,当然chrome浏览器也能支持啦,而且不需要安装插件。

5.1获取id,name

进入页面,按F12,安装如下步骤即可获取到元素的相关属性,就不再多说了。 

5.2获取xpath

在获取到的属性代码块上右击,点击copy xpath即可将xpath复制到剪贴板中 

6.xpath的使用

获取到后,如何去使用呢?其实使用就和获取一样简单,只需将原来的定位参数修改为“xpath= value”即可,value就是4.2步骤中获取到的xpath值。 
我们将上一篇的例子使用的定位方法切换为xpath方法,效果如下。

不过这里xpath看上去好像还是使用id来定位的,这是因为使用工具对xpath自动获取时有很多种方法,有绝对路径,也有相对路径。而这里就是使用相对路径方法里的直接按属性定位。 
我们不妨尝试获取一下右上角”登录”的xpath值。

是不是不太一样了?解释一下,这里先使用按id属性定位获取到了无序列表,即右上角这一排,然后再用相对路径定位到这个列表下的第七个元素“登录”。所以取得的值是”.//*[@id=’u1’]/a[7]“

时间: 2024-10-13 11:32:40

学习使用Robot Framework自动化测试框架-web元素定位的相关文章

三年磨一剑,robot framework 自动化测试框架核心指南,真正讲透robot framework自动化测试框架(笔者新书上架)。

序 关于自动化测试的工具和框架其实有很多.自动化测试在测试IT行业中扮演着越来越重要的角色,不管是在传统的IT行业还是高速发展的互联网行业或是如今的大数据和大热的人工智能领域,都离不开测试,也更加离不开自动化测试.自动化测试已经发展了很多年,在很多大的互联网公司里他们不但有自己的自动化测试框架,甚至基本都建立了自己的自动化测试平台或者已经对外开放使用的自动化测试云平台,也就是说自动化测试几乎已经成为一名测试工程师必须掌握的一个技能,并且随着很多自动化测试工具和框架的不断发展和完善,自动化测试也变

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

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

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

Robot Framework自动化测试框架之我见

一些自动化测试现状: 盲目的去做自动化,最终以失败告终: 认为是能提高效率的事情,却推广不下去: 其实上述问题产生的原因是: 自动化测试案例稳定性不高,可维护性比较差: 自动化测试工具学习成本高,自动化测试人员的成本高: 而RF(Robot Framework,后面都简称RF)具备良好的分层思想,它将测试人员分为懂开发和不懂开发的,懂开发来负责底层关键字开发和维护,供不懂开发的测试人员调用,通过填写表格的形式用自言语言来写自动化测试用例.这样写出来的用例测试用例,大大增强了易读性和可维护性. R

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 Captu

appium+python搭建自动化测试框架_Appium元素定位(二)

1. id定位: self.driver.find_element_by_id('com.tencent.mobileqq:id/btn_login').click() 2. class定位: self.driver.find_element_by_class_name('android.widget.Button').click() (注:一般一个页面上的class属性不唯一,元素不唯一的话定位会报错了) 3. 相对定位: 相对定位是先找到该元素的有对应属性的父元素节点,然后基于父元素进行元素

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

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

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

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

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,我之前也以为