`

Watir的操作使用

阅读更多

与网页交互(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/)              #正则表达式匹配获取 

1
0
分享到:
评论

相关推荐

    Watir测试框架介绍

    3. **Watir库**: 在Ruby环境中,使用`gem install watir`命令安装Watir库。 4. **其他依赖库**: 根据你的需求,可能还需要安装其他的辅助库,如`rspec`用于编写规范化的测试代码。 ### **三、API介绍** Watir提供了...

    ruby watir教程

    此脚本演示了如何使用Watir自动化浏览器操作,并填充表单数据。实际应用中可能还需要处理更多复杂的情况,比如等待页面加载完成、处理弹窗等。通过结合Ruby的强大特性和Watir的灵活性,可以实现高效稳定的自动化测试...

    ruby and watir 安装指南

    - 如果在不同电脑上操作 Watir 时遇到不同的问题(如需不需要 `require 'rubygems'`),这可能是由于环境设置的不同造成的。确保所有环境都一致地配置好 Ruby 和 RubyGems。 - 参考文档和社区支持: - Watir 官方...

    watir安装所需要的gem包

    - 使用Watir提供的各种方法进行页面元素的操作,如`click`、`text`、`value`等。 - 考虑使用Page Object模式来组织测试代码,提高可维护性和可读性。 - 对于大型项目,可以结合Cucumber或RSpec等BDD工具,以更高...

    watir api chm

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

    watir-bonus-1.5.1.1230.zip

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

    watir 自动化测试相关

    在实际项目中,使用Watir、Cucumber和AutoIt的组合,可以构建出一套全面的Web自动化测试解决方案。首先,通过Cucumber定义清晰的测试场景,然后利用Watir编写具体的测试步骤,最后在遇到Windows交互难题时,调用...

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

    4. **操作方法**:Watir提供了丰富的操作方法,如`click`(点击)、`text`(获取元素文本)、`set`(输入文本)等。 ### 示例代码 下面是一个简单的Watir测试脚本示例,它打开一个网页,查找并点击一个按钮: ```...

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    总的来说,这个资源包提供了学习和实践Ruby自动化测试的一个实例,包括如何使用Logger模块进行日志记录以及如何利用Watir或Watir-Webdriver进行浏览器自动化测试。通过研究这个脚本,你可以深入理解Ruby在自动化测试...

    ruby watir介绍文档

    - 在开始使用Watir之前,首先需要安装Ruby环境。可以通过访问[Ruby官网](https://www.ruby-lang.org/en/downloads/)下载最新版本的Ruby,并按照官方指南完成安装。 - 确保Ruby安装成功后,可以在命令行输入`ruby -v`...

    racc watir

    **描述:**提到的“racc watir”是一个关键组件,对于在IT行业中使用Watir(Web Application Testing in Ruby)框架进行自动化测试至关重要。Watir是一个开源库,允许开发者用Ruby语言编写浏览器自动化脚本,它能够...

    Watir输出测试报告的问题研究

    首先, Watir测试框架的核心在于其强大的DOM(文档对象模型)操作能力,通过Ruby代码控制浏览器的行为,如点击按钮、填写表单、检查元素状态等。然而,执行测试后的结果通常需要被记录和报告,以便于分析测试覆盖率...

Global site tag (gtag.js) - Google Analytics