`
diyuxinlang
  • 浏览: 31125 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Watir对WEB的操作

阅读更多
与网页交互(Interacting With a Web Page)
当使用Watir开发测试脚本的时候,通过给网页上的对象发送消息来与之交互。

Watir 语法(Web Application Testing in Ruby)

# watir的安装
watie的安装请查看 -> Ruby library的安装

# 使用Watir工具,需要在脚本中加上
require 'watir'

# 创建一个IE的实例
ie = Watir::IE.new
或者在创建的同时直接转到页面
ie = Watir::IE.start('http://www.text.com/')
Watir使用start方法同时创建一个浏览器实例并转到一个页面。
IE浏览速度
ie.speed = :fast
ie.speed = :slow

# 页面导航
ie.goto('http://www.text.com/')
注: ie.goto还可以运行javascript的代码如: ie.goto("javascript: ie.document.write("Hello World");")

# 取得当前网页的网址
ie.url

# 点击超链接
ie.link(:text , "Pickaxe").click
ie.link(:href, /http:\/\/pragmaticprogrammer\.com/).click
ie.link(:name => 'foo', :index => 1).click

# 超链接的uri
ie.link(:text , "Pickaxe").href
ie.link(:index, 1).href
ie.link(:text => "reply", :index => 2).href

# 超链接的文本
ie.link(:href , /http:\/\/pragmaticprogrammer\.com/).text

对应的HTML代码为:
<a href='http://pragmaticprogrammer.com/titles/ruby/'>Pickaxe</a>

# img标签
ie.image(:name, 'image').src
ie.image(:index, 2).src

对应的HTML代码为:
<img name = img src='http://pragmaticprogrammer.com/titles/ruby/top.gif'>
<img name = img src='http://pragmaticprogrammer.com/titles/ruby/head.gif'>

# 设置复选框
ie.checkbox(:name, "checkme").set
ie.checkbox(:name, "checkme", "1").set # 使用name和value属性设置复选框

# 清除复选框
ie.checkbox(:name, "checkme").clear
ie.checkbox(:name, "checkme", "1").clear # 使用name和value属性清除复选框

对应的HTML代码为:
<input type = "checkbox" name = "checkme" value = "1">

# 设置单选框
ie.radio(:name, "clickme").set
ie.radio(:name=>'clickme', :index=>2).set
ie.radio(:name, "clickme", "1").set # 使用name和id属性设置单选框

# 使用name属性清除单选框
ie.radio(:name, "clickme").clear
ie.radio(:name, "clickme", "1").clear # 使用name和id属性清除单选框

对应的HTML代码为:
<input type = "radio" name = "clickme" id = "1">
<input type = "radio" name = "clickme" id = "2">

# 设置下拉框
ie.select_list(:name, "selectme").select('Python') # 使用text属性和值来设置下拉框
ie.select_list(:name, "selectme").select_value('2') # 使用value属性和值来设置下拉框

# 使用name属性和值来清除下拉框
ie.select_list(:name, "selectme").clearSelection

对应的HTML代码为:
<select name = "selectme">
<option value = 1>Ruby
<option value = 2>Java
<option value = 3>Python
<option value = 4>C
</select>

# 文本的框设置
ie.text_field(:name, "typeinme").set("Watir World")

# 清空文本输入框
ie.text_field(:name, "typeinme").clear

对应的HTML代码为:
<input type = "text" name = "typeinme">

# 通过值或name属性点击button
ie.button(:value, "Click Me").click
ie.button(:name, "clickme").click

对应的HTML代码为:
<input type = "button" name = "clickme" value = "Click Me">

# 通过值或name属性点击Submit
ie.button(:value, "Submit").click
ie.button(:type, "Submit").click
ie.button(:name, "Submit").click

对应的HTML代码为:
<form. action = "submit" name = "submitform" method="post">
<input type = "submit" value = "Submit">
</form>

# 表单中的图片按钮
ie.button(:name, "doit").click

对应的HTML代码为:
<form. action = "submit" name = "doitform" method="post">
<input type="image" src = "images/doit.gif" name = "doit">
</form>

# 没有按钮的表单
ie.form(:name, "loginform").submit # 通过name,action以及method属性来提交表单
ie.form(:action, "login").submit
对应的HTML代码为:
<form. action = "login" name = "loginform" method="get">
<input name="username" type="text">
</form>

# 框架
ie.show_frames可以打印出当前页面框架的数量和名称
Watir允许通过名称属性来访问框架,如ie.frame("menu")
如果要访问menu框架中的一个超链接,可以
ie.frame("menu").link(:text, "Click Menu Item").click

# 嵌套框架
ie.frame(:name, "frame1").form(:name, 'form1')

# 新窗口
一些Web应用会弹出新窗口或打开一个新窗口,可以使用attach方法来访问并控制新窗口。通过标示新窗口的URL或者title来访问。
ie2 = Watir::IE.attach(:url, 'http://www.text.com/')
ie3 = Watir::IE.attach(:title, 'Test New Window')
也可以使用正则表达式
ie4 = Watir::IE.attach(:title, /Test New/)
注意:不要把新窗口分配到你的ie变量,最好给新窗口一个不同的名字

# 访问Table元素:
t = $ie.table(:id,"data")
t = Table.new($ie,:id,"data")
t = $ie.table[1]

# tr,td元素
tr = ie.row(:id,"title")
tr = TableRow.new(ie,:id,"title")

td = ie.cell(:id,"name")
td = TableCell.new(ie,:id,"name")

# Watir中Table,TableBody,TableRow,TableCell这几个类,都提供了一个索引方法"[](index)"来定位其下一层的子元素对象,该方法为实例方法,"index"为传入的参数,索引值从1开始,而非从0开始。
用法如下:
以table的第一行,第一个元素为例:
tr1 = t.[](1)
td1 = tr1.[](1)
也可以连续访问:td1 = t.[](1).[](1)
如果td中还有其他元素,可以通过td的实例方法直接访问,以checkbox为例:
cb = td1.checkbox(:id,'navigate_id').click

对于以上所提到的对象,都是从Element继承而来,所以click,enabled?,exists?,fireEvent,flash,focus等方法都直接可以使用。
如果你的td元素定位准确了,且鼠标响应事件没有错误的话,那么应该能看到点击后的效果。
建议多查一下Watir的API Reference http://wtr.rubyforge.org/rdoc/

代码如下:
t = ie.table(:id,"CoolMenu2menutable")
td_logout=t.[](1).[](16)

先找到Table,再索引TR,再索引到TD

# 运行Ruby时不显示browser方法
运行Ruby程序文件时在后面加 "-b"
ex:
test.rb -b
也可以做成.bat文件
ex: test.bat
ruby.exe test.rb -b

# 获取隐含对象值
<INPUT type=hidden value="您的Email" name="field1">
方法:values = ie.hidden(:name, 'field1').value

# 获取窗口对象
方法1: ie2 = Watir::IE.attach(:url,'http://www.google.cn/')   #根据URL获取
方法2: ie3 = Watir::IE.attach(:title,'Google')                #根据窗口标题获
方法3: ie4 = Watir::IE.attach(:title, /google.cn/)              #正则表达式匹配获取

465b
分享到:
评论
1 楼 wosmvp 2008-12-23  
FF版
http://wiki.openqa.org/display/WTR/FireWatir

相关推荐

    Watir测试框架介绍

    Watir的核心理念是通过编程的方式与网页进行交互,它可以操作页面元素,如点击按钮、填写表单、选择下拉选项等,实现对网页行为的全面测试。Watir支持多种浏览器,包括IE、Firefox、Chrome和Safari,这使得测试环境...

    Ruby-Watir在Ruby中Web应用程序测试

    Ruby-Watir是一种开源自动化测试框架,专门用于在Ruby编程语言中进行Web应用程序的测试。它允许开发者通过编写Ruby代码来模拟用户与浏览器的交互,从而实现端到端的测试。这个工具的名字“Watir”是“Web ...

    watir api chm

    Watir,全称Web Application Testing In Ruby,是一个用于自动化浏览器操作的开源库,主要用于Web应用的自动化测试。它允许开发者使用Ruby语言编写脚本来控制浏览器,执行诸如点击链接、填写表单、验证页面元素等...

    watir 自动化测试相关

    **Watir自动化测试** Watir,全称Web Application Testing in Ruby...而引入AutoIt,能进一步完善自动化测试的场景,确保对Web应用程序进行全面、深入的测试。这样的组合在IT行业的自动化测试领域具有广泛的应用价值。

    watir-bonus-1.5.1.1230.zip

    Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得开发者能够用Ruby代码编写测试脚本来与网页交互,进行功能测试和验收测试。 **描述:“Watir开发文档。包括帮助文档,...

    watir安装所需要的gem包

    Watir,全称为Web Application Testing in Ruby,是一个用于自动化浏览器操作的开源库,它使得编写测试脚本变得简单直观,可以模拟用户在浏览器中的各种交互行为。在Ruby编程语言环境中,Watir允许开发者通过编写...

    开放Ruby+watir 自动化测试工具介绍+安装说明

    Watir,这个名字是Web Application Testing in Ruby的缩写,它可以直接与网页元素进行交互,如点击按钮、输入文本、选择下拉项等,从而实现对Web应用程序的自动化测试。 使用Watir,你可以创建强大的测试脚本来验证...

    ruby watir教程

    **Ruby Watir** 是一种用于网页自动化测试的工具库,它能够模拟用户在浏览器中的操作行为,如点击按钮、填写表单等,非常适合进行功能测试、回归测试和系统测试。 #### 二、安装Ruby Watir ##### 1. 安装Ruby环境 ...

    ruby 自动化框架watir

    Ruby 自动化框架Watir(Web Application Testing in Ruby)是一个强大的工具,专为进行Web应用程序的端到端测试而设计。这个框架允许开发者使用Ruby语言编写测试脚本,与浏览器进行交互,模拟真实用户的行为,从而...

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    Watir(Web Application Testing in Ruby)是Ruby社区开发的一个开源库,它允许我们用Ruby来编写浏览器自动化测试,支持多种主流浏览器,如Chrome、Firefox、Safari等。 标题中的“test_logger1.rar_Logger wat_...

    watir-bonus-1.5.2

    Watir,即Web Application Testing in Ruby,是一个开源的Ruby库,它允许用户通过Ruby代码直接控制浏览器,模拟用户的交互操作,如点击按钮、填写表单、导航等,从而实现对Web应用的自动化测试。 "Watir-Bonus" 是...

    ruby watir介绍文档

    Watir(Web Application Testing In Ruby)是一个用于Web应用程序测试的Ruby库。它提供了一种简单且强大的方法来模拟用户与Web页面的交互行为,进而实现Web应用的功能自动化测试。通过Watir,测试人员可以编写易于...

    Watir API 1.6.2和1.6.5

    它允许开发者通过编写Ruby代码来控制浏览器,进行网页的浏览、点击、填写表单等操作,从而实现对Web应用的测试。Watir API是这个库的核心接口,提供了丰富的功能供用户进行Web自动化测试。 在Watir API 1.6.2和...

    Watir自动化测试的实践代码

    本实践代码集合主要针对使用Watir进行Web应用程序测试的场景,旨在帮助初学者理解并掌握自动化测试的基本概念和操作。 ** Watir 库介绍 ** Watir,全称为Web Application Testing in Ruby,是基于Ruby的一个强大的...

Global site tag (gtag.js) - Google Analytics