功能自动化测试做的就是,找到页面的控件元素,然后操作这些控件,完成模拟人工的测试操作。所以开头肯定是要定位到页面上的元素。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是一个非常有用的工具。它是一个Ruby库,允许用户使用Ruby语言控制浏览器,进行网页元素的交互和测试。Watir是“Web Application Testing in Ruby”的缩写,而...
下面是一些具体的示例代码,展示了如何使用WATIR-WEBDRIVER来操作常见的Web页面元素: ##### 文本框(TextFields) ```ruby require 'watir-webdriver' browser = Watir::Browser.start 'bit.ly/watir-webdriver-...
ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 ...简而言之,WebDriver 提供基于对象的 API,可以以真实用户的视角测试 web 应用,如点击页面中的元素,或是在文本框中输入内容。
ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)
压缩包中包含目前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脚本
标题中的“test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriver”揭示了这个压缩包文件的内容。首先,“test_logger1”可能是一个测试项目或者测试脚本的名称,而“Logger”则指的是Ruby内置的日志...
wairt-webdriver.aip包含了chromedriver.exe、DevKit。、IEDriverServer.exe rubyinstaller-2.1.5.exe、Ruby语言入门教程v1.0这几个文件,是使用wati-webdriver进行安装部署以及ruby语言学些所需要的必不可少的资料...
对于"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和selenium-webdriver一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...
例如,它可能包含了更高级的元素定位策略,或是针对特定Web框架(如Rails)的集成优化,以及一些便利的辅助函数,使得测试脚本编写更加简洁高效。 在提供的压缩包文件中,有以下四个部分: 1. **rdoc** - 这通常是...
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的扩展版本1.5.1的1230次更新,名为“Bonus”。Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得...
Selenium Watir-Webdriver 的域特定页面组件页面组件首先对特定语义域进行建模,然后对浏览器代码进行建模。 Watir-Webdriver 是蜜蜂的膝盖! 现在使用域特定页面组件工厂!用法Domkey 是一个库,可帮助您构建用于...
Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...