`
dtrex
  • 浏览: 139583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

说说watir-webdriver那些事(三)如何定位页面元素

 
阅读更多

功能自动化测试做的就是,找到页面的控件元素,然后操作这些控件,完成模拟人工的测试操作。所以开头肯定是要定位到页面上的元素。watir-webdriver提供了多方方法,帮助我们定位Web页面上的元素。

 

常用的定位方法如下:

 

 

:id                => 'id',
:name              => 'name',
:class             => 'class name',
:class_name        => 'class name',
:link              => 'link text',
:link_text         => 'link text',
:partial_link_text => 'partial link text',
:xpath             => 'xpath',

 

目前webdriver还不支持:css的方法,不过说实话这个不经常用

使用id进行定位

 

比方说针对下面的控件

 

<input type="text" class="s_ipt" maxlength="100" id="kw" name="wd" autocomplete="off">

 进行ID定位,可以这样写

 

b.text_field(:id=>"kw").set "rex"

 id一般是惟一的标示,不会有重复,所以尽量使用id来定位

 

使用name进行定位

 

还是使用这个例子

 

<input type="text" class="s_ipt" maxlength="100" id="kw" name="wd" autocomplete="off">

使用name定位,是这样写的

 

 

b.text_field(:name=>"wd").set "rex"

name可能会有重复,有的时候要加入:index=>1来唯一性定位

 

使用class或者class_name的定位

同样的例子

 

<input type="text" class="s_ipt" maxlength="100" id="kw" name="wd" autocomplete="off">

使用class或者class_name定位,是这样写的

 

b.text_field(:class=>"s_ipt").html

 

使用XPath定位

 

 

同样的例子

 

<input type="text" class="s_ipt" maxlength="100" id="kw" name="wd" autocomplete="off">

使用XPath定位,是这样写的

 

 

b.text_field(:xpath=>'//*[@id="kw"]').html
 

 

不过像我在第一篇文章中介绍的,xpath虽然可以用,不过代码会显得非常丑陋,在实际使用过程中,尽量避免使用用xpath来定位元素比较好。

 

使用其他方法定位

在定位link对象的时候,可以使用link和link_text属性;

另外还可以使用tag_name属性定位任意元素;

 

多种定位方式同时使用

在很多时候一种定位方式不能完全定位唯一元素,需要多个定位方式综合使用

比方说有两个name一模一样的控件,只能通过index来识别,如下

b.button(:name=>"a",:index=>0).click

 这种写法,将定位name为a的第一个元素(这里注意:incex在watir-webdriver里是从0开始的,而在Watir里是从1开始的。)。可以说这种写法是与的关系,即name符合也要index符合。有的时候我们需要或的关系,就是如果名称或者ID只要一个相等就可以,当然你可以写XPath搞定,同时也可以利用 exists?来进行判断,不过代码看似很丑,必要的时候使用吧。

 

使用层级关系定位

举个例子

<span id="news">
    <input type="text" />
</span>

这种情况,可能在很多使用前台组件的页面中,经常碰到,如果使用上面的方法定位,你会发现没有id,没有name,整体上会有很多input,单纯用index很痛苦,这个时候用层级管理会好很多,如下

b.span(:id=>"news").text_field(:index=>0).set "rex"
  

使用这种方式,寻找页面控件更加稳定,效率更高,也算是一种技巧。

 

 

 

 

分享到:
评论

相关推荐

    linux环境下watir-webdriver离线安装包

    在Linux环境下进行自动化测试时,Watir-Webdriver是一个非常有用的工具。它是一个Ruby库,允许用户使用Ruby语言控制浏览器,进行网页元素的交互和测试。Watir是“Web Application Testing in Ruby”的缩写,而...

    WATIR-WEBDRIVER自动化学习指导

    下面是一些具体的示例代码,展示了如何使用WATIR-WEBDRIVER来操作常见的Web页面元素: ##### 文本框(TextFields) ```ruby require 'watir-webdriver' browser = Watir::Browser.start 'bit.ly/watir-webdriver-...

    watir-webdriver谷歌浏览器驱动

    ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 ...简而言之,WebDriver 提供基于对象的 API,可以以真实用户的视角测试 web 应用,如点击页面中的元素,或是在文本框中输入内容。

    ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份

    ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)

    Watir-Webdriver最新安装文件(全)

    压缩包中包含目前2013/01/19最新的安装文件,有rubyinstaller-1.9.2-p136、DevKit-tdm-32-4.5.1-20101214-1400-sfx、rubygems-1.8.24、watir-4.0.2、watir-webdriver-0.6.2等文件,并附上简略安装说明。

    使用watir-webdriver删除百度空间所有文章的ruby脚本

    使用watir-webdriver删除百度空间所有文章的ruby脚本

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    标题中的“test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriver”揭示了这个压缩包文件的内容。首先,“test_logger1”可能是一个测试项目或者测试脚本的名称,而“Logger”则指的是Ruby内置的日志...

    watir-webdriver

    wairt-webdriver.aip包含了chromedriver.exe、DevKit。、IEDriverServer.exe rubyinstaller-2.1.5.exe、Ruby语言入门教程v1.0这几个文件,是使用wati-webdriver进行安装部署以及ruby语言学些所需要的必不可少的资料...

    watir安装所需要的gem包

    对于"watir安装所需要的gem包",主要涉及的Gem包有`watir-webdriver`和`selenium-webdriver`。`watir-webdriver`是Watir的一个版本,它使用Selenium WebDriver作为后端,与浏览器进行通信。而`selenium-webdriver`则...

    watir-cn中文补丁包

    watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn...

    页面对象:在watir-webdriver和selenium-webdriver中实现PageObject模式的宝石

    它可以与watir和selenium-webdriver一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...

    watir-bonus-1.5.2

    例如,它可能包含了更高级的元素定位策略,或是针对特定Web框架(如Rails)的集成优化,以及一些便利的辅助函数,使得测试脚本编写更加简洁高效。 在提供的压缩包文件中,有以下四个部分: 1. **rdoc** - 这通常是...

    win7上搭建cucumber+watir自动化环境

    Watir-webdriver需要浏览器的WebDriver驱动,例如对于Internet Explorer,需要下载IEDriverServer,并将其放在Ruby安装目录下的bin文件夹中。同样,对于Chrome,需要下载ChromeDriver并放置在相同位置。 6. **环境...

    自动化测试框架

    1. **选择合适的工具和技术栈**:根据项目需求选择合适的编程语言(如Ruby)和测试框架(如Watir-WebDriver)。 2. **环境准备**:搭建必要的开发环境,例如安装Ruby、DevKit等。 3. **设计框架结构**:定义测试脚本...

    watir-bonus-1.5.1.1230.zip

    **标题:“Watir-Bonus-1.5.1.1230.zip”** 这个压缩包包含的是Watir的扩展版本1.5.1的1230次更新,名为“Bonus”。Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得...

    domkey:Selenium Watir Webdriver 的域特定页面组件

    Selenium Watir-Webdriver 的域特定页面组件页面组件首先对特定语义域进行建模,然后对浏览器代码进行建模。 Watir-Webdriver 是蜜蜂的膝盖! 现在使用域特定页面组件工厂!用法Domkey 是一个库,可帮助您构建用于...

    ruby 2.00 selenium webdriver,watir webdriver 备份打包

    Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...

Global site tag (gtag.js) - Google Analytics