一个web功能自动化测试工具应该具备三个基础属性:
1.可以定位web的DOM元素,这个我在前面的定位已经讲过了
2.可以执行js脚本,这个不仅是上一章说的执行js,还包括对控件的写js操作
3.模拟键盘鼠标进行操作。
前两点,已经在前面都谈过了,下面讲讲第三点,模拟操作,首先说说模拟键盘操作:
键盘模拟
如果用过Selenium的话,会知道神奇的send_keys几乎涵盖了所有的输入操作,那么Watir-webdriver也是一样的模拟键盘的操作,可以使用这条命令,比方说,我想在页面上大一个回车
b.send_keys :enter
当然你会遇到组合键和连续按键,可以这样做
b.element.send_keys [:control, 'a'], :backspace
额,神奇的事情还有
b.text_field.send_keys("hello")
当然别忘了,鼠标单击的时候,你想加入其他按键
b.element.click(:shift, :control)
好吧,几乎是无所不能的键盘模拟啊,下面了列出一些特殊按键的名称以供参考:
- :null
- :cancel
- :help
- :backspace
- :tab
- :clear
- :return
- :enter
- :shift
- :left_shift
- :control
- :left_control
- :alt
- :left_alt
- :pause
- :escape
- :space
- :page_up
- :page_down
- :end
- :home
- :left
- :arrow_left
- :up
- :arrow_up
- :right
- :arrow_right
- :down
- :arrow_down
- :insert
- :delete
- :semicolon
- :equals
- :numpad0
- :numpad1
- :numpad2
- :numpad3
- :numpad4
- :numpad5
- :numpad6
- :numpad7
- :numpad8
- :numpad9
- :multiply
- :add
- :separator
- :subtract
- :decimal
- :divide
- :f1
- :f2
- :f3
- :f4
- :f5
- :f6
- :f7
- :f8
- :f9
- :f10
- :f11
- :f12
- :meta
- :command
鼠标模拟
在使用过程中,经常遇到模拟鼠标的操作,这个部分其实在watir-webdriver中比较难以完美的实现。有很多方法去比较,比方说如果要模拟鼠标mouseover的情况,可以使用fire_event函数触发该事件,或者使用js方法来调用改事件,还有一个方法就是使用底层的seleneium-webdriver的action方法:
require 'rubygems'
require 'selenium-webdriver'
dr = Selenium::WebDriver.for :firefox
select_file = 'file:///'.concat File.expand_path(File.join(File.dirname(__FILE__), 'fire_event.html'))
dr.navigate.to select_file
m = dr.find_element(:css => '.mo')
10.times do
dr.action.move_to(m).perform
end
这个一段别人写的方法,这种底层的selenium的Action方法是使用java的ACTION类来模拟鼠标操作,来模拟mouseover事件。
当然你也可以使用ruby调用Win32api来模拟鼠标的移动,不过这种情况下要计算好坐标,我把相关代码贴出来,具体使用的时候,可能还需要计算坐标的位置,和将网页置顶(这种方式不符合自动化测试工具的基本的设计理念,就是多个浏览器并行执行,如果模拟鼠标位置,那么就只能将一个网页置顶,才有效果)
#要求ruby1.8.x
require 'Win32API'
#定义API GetCursorPos和SetCursorPos的接口
get_cursor_pos = Win32API.new("user32","GetCursorPos",['p'],'v')
$set_cursor_pos = Win32API.new("user32","SetCursorPos",['i']*2,'v')
#获取鼠标位置
lpPoint =" " * 8 #初始化存储位置信息的变量
get_cursor_pos.Call(lpPoint) #调用API
x, y = lpPoint.unpack("LL") #将传回的参数转换为两个无符号的长整数
puts "当前鼠标的坐标为: #{x}, #{y}"
#设置鼠标位置
def setm(new_xy)
p new_xy
$set_cursor_pos.Call(new_xy[0], new_xy[1])
end
100.times{
setm([rand*800,rand*600])
sleep 0.01
}
老实说,我觉得效果都不是很好,在具体情况下,还是尽量寻找规避的方法。推荐使用fire_event来触发事件
分享到:
相关推荐
在Linux环境下进行自动化测试时,Watir-Webdriver是一个非常有用的工具。它是一个Ruby库,允许用户使用Ruby语言控制浏览器,进行网页元素的交互和测试。Watir是“Web Application Testing in Ruby”的缩写,而...
### WATIR-WEBDRIVER自动化学习指导 #### 一、简介 WATIR-WEBDRIVER是一款基于Ruby语言的Web自动化测试框架,它能够帮助开发者和测试工程师编写高效的自动化测试脚本。WATIR(Web Application Testing In Ruby)与...
ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)
ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 WebDriver 通路协议的支持,因此可以轻松与现有的 WebDriver 测试工具相整合。不熟悉 WebDriver 的用户可以参考 2009 年的项目发布...
压缩包中包含目前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脚本
最后,“watir-webdriver”是Watir的一个分支,它利用Selenium WebDriver接口,直接与浏览器的内核进行通信,增强了对浏览器的控制能力,如处理JavaScript交互、模拟用户行为等。WebDriver是一个跨平台的标准,使得...
wairt-webdriver.aip包含了chromedriver.exe、DevKit。、IEDriverServer.exe rubyinstaller-2.1.5.exe、Ruby语言入门教程v1.0这几个文件,是使用wati-webdriver进行安装部署以及ruby语言学些所需要的必不可少的资料...
Watir,全称为Web Application Testing in Ruby,是一个用于自动化浏览器操作的开源库,它使得编写测试脚本变得简单直观,可以模拟用户在浏览器中的各种交互行为。在Ruby编程语言环境中,Watir允许开发者通过编写...
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一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...
Watir,即Web Application Testing in Ruby,是一个开源的Ruby库,它允许用户通过Ruby代码直接控制浏览器,模拟用户的交互操作,如点击按钮、填写表单、导航等,从而实现对Web应用的自动化测试。 "Watir-Bonus" 是...
Watir-webdriver是Watir的一个分支,专门用于WebDriver接口,支持多种浏览器的自动化测试。安装命令如下: ``` gem install watir-webdriver --no-rdoc --no-ri gem install watir-webdriver-performance --no-...
- **Watir-WebDriver**:一个用于Web自动化测试的强大库,它允许用户通过编程的方式模拟用户在浏览器中的操作。 ##### 2. 安装与配置 - **Ruby 1.9.3**:这是文章中提到的Ruby版本,安装方法一般包括直接下载...
Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得开发者能够用Ruby代码编写测试脚本来与网页交互,进行功能测试和验收测试。 **描述:“Watir开发文档。包括帮助文档,...
Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...
开源自动化测试工具组合:Ruby+Watir安装 安装准备: 1. 工具安装包准备: Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6 Watir下载地址:...