关于Watir的安装文章网上一大堆,但真正靠谱的没有几个,不是报错就是安装包不对。我开始也是初哥,用了近一个星期才总结出来一套完整的安装理论,共享一下往大家可以从中可以少走一些弯路。本文提供全量安装包下载,包括:ruby + watri 自动化部署集成Eclipse 全量安装包 (包括:watir-1.5.4、ruby186-26、WatirRecorder_Setup_lite、dltk-core-ruby、dotnetfx、rubygems-1.3.7、安装说明。

安装说明:
1、 安装 ruby的gem升级包和watir.gem时在cmd下运行。
2、 这两个文件安装时,注意cd到相应目录下。
3、 ruby的gem升级包安装命令:ruby setup.rb
4、 watir.gem安装命令:gem install watir --local
    (watir.gem最高只能安装1.5.4版本。)

  (全量包)下载地址:http://download.csdn.net/detail/yiyu1/7542847

  watri使用说明:

1.打开编辑器  
2.以.rb为你的文件扩展名
3.在测试文件的第一句写上“require 'watir'”,确保可以访问Watir工具。
4.打开浏览器并转到要测试的应用
5.与之交互并设计你的testcase
6.在测试脚本中使用Watir方法
7.验证结果

  watri常用语法:

1.使用Watir,需要在脚本中加上(固定写法)
require 'watir'
2.创建一个IE的测试实例
ie = Watir::IE.new
或者在创建的同时直接转到页面
ie = Watir::IE.start("http://javame.cnblogs.com";)
Watir使用start方法同时创建一个浏览器实例并转到一个页面。

3.页面导航
ie.goto("http://javame.cnblogs.com";)

4.操纵Web页面对象
4.1超链接
4.1.1使用Text属性点击超链接
ie.link(:text , "Pickaxe").click
对应的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
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属性和值来设置下拉框
ie.select_list( :name , "selectme").select("is fun")
4.4.2使用name属性和值来清除下拉框
ie.select_list( :name , "selectme").clearSelection
对应的HTML代码为: <select name = "selectme" > <option name=1> <option name=2>Web Testing <option name=3>in Ruby <option name=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表单中的图片按钮 使用那么属性
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没有按钮的表单 Watir can submit a form by identifying it by its name, action and method attributes. 可以通过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("frame1").frame(:name, "nested_frame")
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变量,最好给新窗口一个不同的名字

基于ruby的watir自动化测试 笔记一的更多相关文章

  1. 基于ruby的watir自动化测试 笔记二

    基于ruby的watir自动化测试 笔记一的补充版,新增加了些特殊的控件捕获方法.还在更新中.... attribute_value 获取当前控件的属性 Value = ie.link(:id=> ...

  2. 基于Ruby的watir-webdriver自动化测试方案与实施(五)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...

  3. 基于Ruby的watir-webdriver自动化测试方案与实施(三)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

  4. 基于Ruby的watir-webdriver自动化测试方案与实施(二)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ...   回顾 软 ...

  5. 从0到1,教你实现基于Ruby的watir-webdriver自动化测试

    一.为什么选择Ruby []完全开源. []多平台:Ruby可以运行在Linux, UNIX, Windows, MS-DOS, BeOS, OS/.. []多线程:线程就是指在一个程序中处理若干控制 ...

  6. 基于Ruby的Watir-WebDriver自动化测试框架

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  7. 基于Ruby的watir-webdriver自动化测试方案与实施(四)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   首先回忆 ...

  8. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  9. 基于Ruby的Watir-WebDriver自动化测试方案

    Watir-WebDriver       —— 软件测试的自动化时代 QQ群:160409929 自动化测试方案书 系统架构 该自动化测试框架分三个模块:Test用例.Control控制层.Tool ...

随机推荐

  1. EF6 中tracking log使用方法总结

    先上一段最近项目中的代码,此代码可以放到自己项目中的dbContext中 public override Task<int> SaveChangesAsync() { List<Au ...

  2. 基于类型系统的面向对象编程语言Go

    (整理自网络) 面向对象编程 Go语言的面向对象编程(OOP)非常简洁而优雅.说它简洁,在于它没有了OOP中很多概念,比如:继承.虚函数.构造函数和析构函数.隐藏的this指针等等.说它优雅,是它的面 ...

  3. [转载]OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  4. spring MVC @Resource不支持Lazy加载

    今天迁一系统时发现有个bean使用@Resource注入了另外一个bean,这个被注入的bean是将被deprecated的类,而且只有一两个功能使用到,为了先调整进行测试,增加了@Lazy注解,启动 ...

  5. VisualCaptcha – 灵活的可视化验证码解决方案

    visualCaptcha 是一个可配置的验证码解决方案,专注于可访问性和简单性,同时保持安全性.它也支持移动,视网膜设备,并有一个创新的可访问性的解决方案. visualCaptcha 现在可以跨多 ...

  6. EpicEditor – 可嵌入的 JavaScript Markdown 编辑器

    EpicEditor 是一款可以嵌入到网页中的 JavaScript Markdown 编辑器,支持全屏编辑.在线预览.自动保存草稿,离线支持等等.对于开发人员,它提供了一个健壮的API,可以很容易定 ...

  7. pywebsocket的搭建

    Python可以搭建pywebsocket(Web服务器,python websocket),搭建pywebsocket必须要已经安装了python,点我查看python的下载与安装.在这篇Blog中 ...

  8. [DeviceOne开发]-白板的示例

    一.简介 该demo通过do_Painterview这个组件实现画板的基本功能,模仿的是Appstore上的叫“白板”的应用,可以更改字体颜色,字体粗细,然后用手指进行绘制,可以回退,清屏,保存到相册 ...

  9. javascript 不响应可能是引用外部javascript时,引用顺序不对。

    有相互引用关系的js,要最后执行的方法所在的js 先被引用. a.js 中有function1 b.js 中有function2 function1 () { function2(){} } 要 &l ...

  10. python任务执行之线程,进程,与协程

    一.线程 线程为程序中执行任务的最小单元,由Threading模块提供了相关操作,线程适合于IO操作密集的情况下使用 #!/usr/bin/env python # -*- coding:utf-8 ...