因为热爱所以不觉的辛苦,因为发现缺陷所以变的快乐!

Watir对WEB的操作

上一篇 / 下一篇  2009-01-22 19:46:00 / 个人分类:watir

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP

Watir对WEB的操作

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

1.2 使用Watir工具,需要在脚本中加上
require ‘watir’

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

3.页面导航
ie.goto(’http://mytestsite’)
注: ie.goto还可以运行javascrīpt的代码如: ie.goto(”javascrīpt: ie.document.write(”Hello World”);”)

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

4.操纵Web页面对象
4.1超链接
4.1.1使用Text属性点击超链接
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>
4.1.2使用URL属性点击超链接
ie.link(:url , ’http://pragmaticprogrammer.com/titles/ruby/’).click
对应的HTML代码为:
<a href=’http://pragmaticprogrammer.com/titles/ruby/’>Test Site</a>

4.2复选框
4.2.1使用name属性设置复选框
ie.checkbox(:name, “checkme”).set
4.2.2使用name属性清除复选框
ie.checkbox(:name, “checkme”).clear
4.2.3使用name和value属性设置复选框
ie.checkbox(:name, “checkme”, “1″).set
4.2.4使用name和value属性清除复选框
ie.checkbox(:name, “checkme”, “1″).clear
对应的HTML代码为:
<input type = “checkbox” name = “checkme” value = “1″>

4.3单选框
4.3.1使用name属性设置单选框
ie.radio(:name, “clickme”).set
ie.radio(:name=>’radio’, :index=>2).set
4.3.2使用name属性清除单选框
ie.radio(:name, “clickme”).clear
4.3.3使用name和id属性设置单选框
ie.radio(:name, “clickme”, “1″).set
4.3.4使用name和id属性清除单选框
ie.radio(:name, “clickme”, “1″).clear
对应的HTML代码为:
<input type = “radio” name = “clickme” id = “1″>

4.4下拉框
4.4.1使用name,value属性和值来设置下拉框
ie.select_list( :name , “selectme”).select(”is fun”)
ie.select_list(:name, ’selectme’).select_value(’2′)

4.4.2使用name属性和值来清除下拉框
ie.select_list( :name , “selectme”).clearSelection
对应的HTML代码为:
<select name = “selectme” > <option value=1> <option value =2>Web Testing <option value =3>in Ruby <option value =4>is fun </select>

4.5在Web页面中输入数据
4.5.1使用文本输入框的那么属性设置输入内容
ie.text_field(:name, “typeinme”).set(”Watir World”)
4.5.2清空文本输入框
ie.text_field(:name, “typeinme”).clear
对应的HTML代码为:
<input type = “text” name = “typeinme” >

4.6从Web页面上提交数据
4.6.1按钮
4.6.1.1通过值或标题属性点击按钮
ie.button(:value, “Click Me”).click
4.6.1.2通过name属性点击按钮
ie.button(:name, “clickme”).click
对应的HTML代码为:
<input type = “button” name = “clickme” value = “Click Me”>
4.6.2表单
4.6.2.1表单中的按钮
使用value或标题属性
ie.button(:value, “Submit”).click
对应的HTML代码为:
<form. action = “submit” name = “submitform” method=”post”><input type = “submit” value = “Submit”></input></form>
4.6.2.2表单中的图片按钮
使用name属性
ie.button(:name, “doit”).click
对应的HTML代码为:
<form. action = “submit” name = “doitform” method=”post”><input type=”image” src = “images/doit.gif” name = “doit”></form>
4.6.2.3没有按钮的表单
可以通过name、action以及method属性来提交表单
ie.form(:name, “loginform”).submit
ie.form(:action, “login”).submit
对应的HTML代码为:
<form. action = “login” name = “loginform” method=”get”><input name=”username” type=”text”></input></form>
4.6.3框架
ie.show_frames可以打印出当前页面框架的数量和名称
Watir允许通过名称属性来访问框架,如ie.frame(”menu”)
如果要访问menu框架中的一个超链接,可以
ie.frame(”menu”).link(:text, “Click Menu Item”).click

4.6.4嵌套框架
ie.frame(:name, ”frame1″).form(:name, ‘form1′)

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

4.7 访问Table元素:
4.7.1 对于实例化的$ie对象,我们可以通过以下的两种方式来访问他的Table元素:
t = ie.table(:id,”data”)
t = Table.new(ie,:id,”data”)
t = ie.table[1]
num = ie.tables.length
同样,对于tr和td来说,分别也有以上两种方法:
tr = ie.row(:id,”title”)
tr = TableRow.new(ie,:id,”title”)
td = ie.cell(:id,”name”)
td = TableCell.new(ie,:id,”name”)

4.7.2 Watir中Table,TableBody,TableRow,TableCell这几个类,都提供了一个索引方法”[](index)”来定位其下一层的子元素对象,该方法为实例方法,”index”为传入的参数,索引值从1开始,而非从0开始。
用法如下:
以table的第一行,第一个元素为例:
tr_num = t.rows.length
tr1 = t.[](1)
td_num = t.cells.length
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 Referencehttp://wtr.rubyforge.org/rdoc/

我写的代码如下:
def logOut()
t = ie.table(:id,”CoolMenu2menutable”)
td_logout=t.[](1).[](16)
end
先找到Table,再索引TR,再索引到TD

5.1 运行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/)              #正则表达式匹配获取

6.1 隐藏要素的获取
form.hidden(:name, ’ses’).value

7.1 img标签
ie.image(:index, 1).src

TAG: watir

 

评分:0

我来说两句

日历

« 2024-04-07  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 15179
  • 日志数: 10
  • 文件数: 9
  • 书签数: 2
  • 建立时间: 2009-01-21
  • 更新时间: 2009-02-28

RSS订阅

Open Toolbar