先贴个图:

看了javaeye上某一高人关于如何用win32api点击ie提示条的文章,学习了这种方法,不过原文没有进一步说明,当点击提示条出现下拉选项时,应该如何点击相应的选项的方法,我自己用autoit解决了这个问题,代码如下:
先看原文中的windowsAPI module代码如下:
###################################################
#WindowsAPI Module
#############################################
module WindowsInput
# Windows API functions
SetCursorPos = Win32API.new('user32','SetCursorPos', 'II', 'I')
SendInput = Win32API.new('user32','SendInput', 'IPI', 'I')
# Windows API constants
INPUT_MOUSE = 0
MOUSEEVENTF_LEFTDOWN = 0x0002
MOUSEEVENTF_LEFTUP = 0x0004
MOUSEEVENTF_RIGHTDOWN = 0x0008
MOUSEEVENTF_RIGHTUP = 0x0010
module_function
def send_input(inputs)
n = inputs.size
ptr = inputs.collect {|i| i.to_s}.join # flatten arrays into single string
SendInput.call(n, ptr, inputs[0].size)
end
def create_mouse_input(mouse_flag)
mi = Array.new(7, 0)
mi[0] = INPUT_MOUSE
mi[4] = mouse_flag
mi.pack('LLLLLLL') # Pack array into a binary sequence usable to SendInput
end
def move_mouse(x, y)
SetCursorPos.call(x, y)
end
def right_click
rightdown = create_mouse_input(MOUSEEVENTF_RIGHTDOWN)
rightup = create_mouse_input(MOUSEEVENTF_RIGHTUP)
send_input( [rightdown, rightup] )
end
def left_click
leftdown = create_mouse_input(MOUSEEVENTF_LEFTDOWN)
leftup = create_mouse_input(MOUSEEVENTF_LEFTUP)
send_input( [leftdown, leftup] )
end
end
原文中主程序引用部分代码如下:
x = $ie.document.parentWindow.screenLeft.to_i + 10
y = $ie.document.parentWindow.screenTop.to_i - 10
WindowsInput.move_mouse(x, y)
WindowsInput.left_click
我自己做了改进的代码如下:
$ie2.bring_to_front #需要将待操作的windows窗口置于前端,针对多窗口的情况
$ie2.maximize() #特别注意窗口需要最大化,否则计算x,y坐标会出错
x = $ie2.document.parentWindow.screenLeft.to_i + 10
y = $ie2.document.parentWindow.screenTop.to_i - 10
WindowsInput.move_mouse(x, y)
WindowsInput.left_click
$autoit.Send('{DOWN}')#此处是用autoit来操作提示栏的下拉选项
$autoit.Send('{ENTER}')
分享到:
相关推荐
Watir的核心理念是通过编程的方式与网页进行交互,它可以操作页面元素,如点击按钮、填写表单、选择下拉选项等,实现对网页行为的全面测试。Watir支持多种浏览器,包括IE、Firefox、Chrome和Safari,这使得测试环境...
Watir的主要优势在于它的轻量级设计和对多种浏览器及操作系统的广泛支持。它可以与IE、Firefox、Chrome等主流浏览器配合,实现跨平台的自动化测试。Watir提供了丰富的库,封装了HTML元素,如窗口、按钮、链接、...
通过Watir,你可以编写Ruby脚本来控制浏览器,模拟用户操作,例如点击链接、填写表单、验证页面元素等,从而实现对Web应用的功能性和行为验证。 在开始使用Watir之前,你需要在脚本中引入库,通过`require 'watir'`...
watir测试框架介绍 watir测试框架介绍 watir测试框架介绍
- Watir能够识别并操作页面上的大部分HTML元素,例如按钮、文本框、下拉菜单等。 #### 十、高级使用示例 - **用Watir测试MercuryTours**: MercuryTours是一个用于测试的虚拟网站,使用Watir对其进行自动化测试。 -...
它允许开发者用Ruby语言编写脚本来模拟用户与网页的交互,如点击链接、填写表单、选择下拉选项等。Watir的目标是使测试更加自然、简单且可靠。以下是对Watir语法的详细解释和示例: 1. 文本框(Text Field): - `...
Watir提供了多种方法来查找和操作页面元素,例如`browser.text_field(name: 'username')`用于找到指定name属性的文本框,`element.click`用于点击元素,`element.value = 'new value'`用于更改元素的值。...
安装命令:gem install watir --local。
接下来,你可以使用Watir的方法来模拟用户行为,如填写表单、点击链接、检查元素状态等,以此确保Web应用的正确性。 总之,Ruby结合Watir提供了一个强大且灵活的自动化测试解决方案,尤其适用于Web应用的开发和维护...
**Ruby和Watir自动化测试工具详解** Ruby是一种面向对象的编程语言,它的设计哲学强调简洁性和易读性,使得开发者可以高效地编写代码。作为解释型语言,Ruby不需要编译即可运行,同时还拥有强大的文本处理能力,...
### Ruby 和 Watir 的安装指南 #### 背景与问题描述 在尝试安装 Watir 时遇到问题,尤其是在服务器 2003 上。主要问题是 Watir 的依赖包 `activesupport` 需要 Ruby 版本 >= 1.8.7,而当前系统上安装的是 Ruby ...
- 使用Watir提供的各种方法进行页面元素的操作,如`click`、`text`、`value`等。 - 考虑使用Page Object模式来组织测试代码,提高可维护性和可读性。 - 对于大型项目,可以结合Cucumber或RSpec等BDD工具,以更高...
它允许使用Ruby语言编写测试脚本,与浏览器进行交互,如点击链接、填写表单、验证页面元素等,极大地提高了测试效率和准确性。 **Cucumber框架** Cucumber是BDD(行为驱动开发)的一种实现,它使用自然语言描述的...
而示例部分则提供了实际的代码片段,演示了如何执行各种Web测试任务,如点击按钮、填写表单、验证页面元素等,这对于初学者来说是非常宝贵的资源。unittests可能包含单元测试用例,展示了如何编写测试代码来验证...
Watir提供了多种访问页面对象的方法。 选择Watir的原因有很多。作为测试工具,Watir与Rational、Mercury和Segue等专业工具一样强大和复杂。同时,因为Watir是Ruby库的一部分,它具有强大的编程能力,可以连接数据库...
开源自动化测试工具组合:Ruby+Watir安装 安装准备: 1. 工具安装包准备: Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6 Watir下载地址:...
**Ruby Watir** 是一种用于网页自动化测试的工具库,它能够模拟用户在浏览器中的操作行为,如点击按钮、填写表单等,非常适合进行功能测试、回归测试和系统测试。 #### 二、安装Ruby Watir ##### 1. 安装Ruby环境 ...
### Watir本地安装指南 #### 一、概述 Watir是一款强大的自动化测试工具,主要用于Web应用的功能性测试。它基于Ruby语言开发,并且能够与多种浏览器进行交互,从而实现自动化的测试过程。对于Windows系统下的用户...