Watir RAutomation VS AutoIt to deal with popup
Watir使用过程中,经常遇到的弹出框分为几类:
1. Alert
2. Confirm
3. Prompt
4. File select
Watir 处理弹出框,有很多方法,可以应用 AutoIt来处理,也可以通过 RAutomation来处理。
AutoIt的局限性是无法跨平台,所以在Watir 4.0中被摒弃了;
RAutomation 对中文的处理存在一定的局限性,对于新手来说,常常无法找到问题的解决方案。
Watir-classic 中的 Watir::Alert 方法,是无法起作用的。
我对AutoIt,Rautomation处理弹出框做了一个总结:
AutoIt处理方法如下:
#encoding:utf-8
require 'watir-classic'
class PopupWindow
def initialize( )
@autoit = WIN32OLE.new('AutoItX3.Control')
end #popup_title: 弹出窗口的标题
def push_alert_button(popup_title)
@autoit.WinWaitActive(popup_title, "")
@autoit.ControlClick(popup_title, "", "Button1")
@autoit.WinWaitClose(popup_title)
end #popup_title: 弹出窗口的标题
#button_name: 弹出窗口上要点击的按钮名称
def push_confirm_button(popup_title, button_name)
@autoit.WinWaitActive(popup_title, "")
@autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
@autoit.WinWaitClose(popup_title)
end #popup_title: 弹出窗口的标题
#input: 在弹出窗口的输入口中要输入的值
#button_name: 弹出窗口上要点击的按钮名称
def push_prompt_button(popup_title, input, button_name)
@autoit.WinWaitActive(popup_title, "")
@autoit.ControlSetText(popup_title, "", "Edit1", input)
@autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
@autoit.WinWaitClose(popup_title)
end #popup_title: 弹出窗口的标题
#file_path: 在弹出窗口的输入口中要输入的文件路径
#button_name: 弹出窗口上要点击的按钮名称
def select_file(popup_title, file_path, button_name="打开(&O)")
@autoit.WinWaitActive(popup_title, "")
@autoit.ControlSetText(popup_title, "", "Edit1", file_path)
@autoit.ControlClick(popup_title, "", "[text:#{button_name}]")
@autoit.WinWaitClose(popup_title)
end
end
如何应用 RAutomation 处理 Watir IE 弹出框?
#encoding=utf-8
require "rautomation"
require "watir-classic"
#text means the English text which only displayed on the Alert popup window
def click_alert(text)
window = RAutomation::Window.new(:text => /#{text}/i)
window.wait_until_present
window.activate
puts window.button(:class =>"Button", :index =>0).exists?
window.button(:class =>"Button", :index =>0).click
end #text means the English text which only displayed on the Confirm popup window
#value means the value you want to input on Prompt window
def set_prompt(text, value)
window = RAutomation::Window.new(:text => /#{text}/i)
window.wait_until_present
window.activate
text_field = window.text_field(:class =>"Edit", :index=>0)
text_field.set(value)
window.button(:class =>"Button", :index =>0).click
end #text means the English text which only displayed on the Confirm popup window
def click_confirm(text)
window = RAutomation::Window.new(:text => /#{text}/i)
window.wait_until_present
window.activate
puts window.button(:class =>"Button", :index =>0).exists?
window.button(:class =>"Button", :index =>0).click
end
#text means the English text which only displayed on the Select file popup window
#path means the file path you want to select
def select_file(text, path)
window = RAutomation::Window.new(:text => /#{text}/i)
window.wait_until_present
window.activate
window.text_field(:class =>"Edit", :index =>0).set(path)
window.button(:class =>"Button", :index =>0).click
end
Watir RAutomation VS AutoIt to deal with popup的更多相关文章
- Watir: 应用Watir,调用AutoIT清空IE浏览器的Cookies
require 'win32ole'ai = WIN32OLE.new("AutoItX3.Control")ai.RunWait("RunDll32.exe InetC ...
- watir学习系列--对话框处理(转)
1.下面是网上编写的类库,保存为libAutoit.rb #LibAutoit主要处理windows弹出的对话框,调用autoit类进行处理 #函数如下: #- ChooseFileDialog函数: ...
- 【ruby】ruby基础知识
Install Ruby(安装) For windows you can download Ruby from http://rubyforge.org/frs/?group_id=167 for L ...
- RAutomation 在 Watir中的使用
RAutomation的用法 require "rautomation" # 通过匹配部分标题来获取窗口 window = RAutomation::Window.new(:tit ...
- AutoIT: 开发界面结合GUI automation和Watir Automation
可以应用AutoIT开发出界面,从而把AutoIT对GUI的自动化测试与Watir对web的自动化测结合在一起.以下代码是我学习GUI界面开发的实例代码.1. 当点击Watir_Test_Button ...
- Watir: 右键点击实例(某些如果应用AutoIt来做会更加简单高效)
require 'watir' module Watir class Element def top_edge assert_exists assert_enabled ole_object.getB ...
- Watir: 对浏览器的保存文件操作, 其实应用的是AutoIt脚本
def save_file(filepath) ai =WIN32OLE.new("AutoItX3.Control") ai.WinWait("FileDownload ...
- ruby + watir 自动化上传图片文件解决方案
watir自动化捕获上传图片元素: require 'watir' include Watir require 'test/unit' class TC_recorded < Test::Uni ...
- Watir资源列表【转】
Watir简介 "Watir" (发音与 water相近) 全写是 "Web Application Testing in Ruby".Watir是一款用Rub ...
随机推荐
- Android Studio调试工具总结
前言:写代码不可避免有Bug.通常情况下除了日志最直接的调试手段就是debug.当我们的程序出现bug时,调试能够高速的找到bug. 进入调试状态.我们能够清晰的了解程序的整个运行过程,能够对内 ...
- 手把手教你安装Hbase,一次成功!
安装环境: OS: Centos 6.5 JDK: jdk1.6.0_18 Hadoop: hadoop-0.20.2 Hbase: hbase-0.90.5 安装准备: 1. Jdk环境 ...
- HDU 4923 Room and Moor(推理+栈维护)
HDU 4924 Room and Moor 题目链接 题意:给定一个01组成的a序列.要求一个b序列,b序列每一个数值为[0, 1]之间的数,而且b序列为非递减序列,要求∑(ai−bi)2最小,求这 ...
- kubernetes之创建基于名称空间的内存和cpu限额示例
系列目录 首先我们创建一个名称空间 kubectl create namespace quota-mem-cpu-example 创建资源配额 apiVersion: v1 kind: Resourc ...
- 物联网网络编程和web编程
本文是基于嵌入式物联网研发project师的视觉对网络编程和web编程进行阐述. 对于专注J2EE后端服务开发的同学来说,这篇文章可能略微简单.可是网络编程和web编程对于绝大部分嵌入式物联网proj ...
- 5分钟快速入门Markdown
Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写 ...
- MySQL 导入导出命令(转载)
导出数据: mysqldump --databases -u root -p密码 数据库名> /root/guogl/XXX.sql 从sql文件导入数据: mysql -u root -p密码 ...
- SAP-ABAP系列 第二篇SAP ABAP开发基础
第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...
- iOS8 Push Notifications
本文转载至 http://blog.csdn.net/pjk1129/article/details/39551887 原贴地址:https://parse.com/tutorials/ios-p ...
- Java类加载器(死磕3)
[正文]Java类加载器( CLassLoader ) 死磕3: 揭秘 ClassLoader抽象基类 本小节目录 3.1. 类的加载分类:隐式加载和显示加载 3.2. 加载一个类的五步工作 3. ...