Watir Popup对象处理
上一篇 / 下一篇 2009-09-03 16:04:31 / 个人分类:Ruby && Watir
Watir基于处理,继承于web,document的对象提供较好的支持方法,但相对于处理windows对象较弱. 就目前从各网站收集的对象来看, 基本上,对于在IE实例对象打开的web标准对象能够成功识别与操作,其它的脱离当前IE窗口,打开的所有弹出框都不能正常识别。其中,弹出框对象占有异常对象识别中很大一部分。51Testing软件测试网N'y6rQ!c q4p~:BCF
51Testing软件测试网K#`c5W*a目前碰到的弹出框, 我把他们分为三大类型:51Testing软件测试网$p2bj*b+Dw
$b)]c-VH+G0N0 51Testing软件测试网:~EH-yXgs
51Testing软件测试网6};qBR\p1, Alerts 警告作用,如:sorry, 当前用户没有权限操作51Testing软件测试网qN y2M"DZH/n8L)~?
E)Hl$p d#M02, Confirm 需要操作按钮, 如:你确认要删除当前记录?
3dy M1PjAC051Testing软件测试网3k6\C0CN@+j~3, Prompt+ select +confirm 需要用户输入,操作查询或点击, 最后确认, 如:Download/upload (浏览+选择文件)51Testing软件测试网#] R}4B0G+h5cx,N^L x4\
51Testing软件测试网AvuT4Z K2Cp0aQ&hx51Testing软件测试网0CyG f7i1o
#Q~y|%W a^JH0下面给出,上面几种弹出框watir实现识别与操作的方法,51Testing软件测试网ou%IWOY~*ze
OqX/f2{rlv:mn05.1. 弹出框基于autoIT + 线程实现方式
X miy)s(e0A&~o`9g0此种方法,对于第一、二种弹出框操作较有效,
ipM(U}3c"F-e7N8z+`0#HH`S.u!ETa#D0因点击某个link/button等对象,而弹出的窗口(大部分弹出框可应用此种方式来实现。)51Testing软件测试网+c'NF~Fe
G'i*FW1{8f L01, 定义方法51Testing软件测试网;j/h*ww,ks.Yp
51Testing软件测试网`8\3PZ!G u%nW%_def check_for_popups
H8f3w"Cd08s\9N(d PZ'Ye6de0|~0 autoit = WIN32OLE.new(’AutoItX3.Control’)51Testing软件测试网l[;L&}3h0u
51Testing软件测试网2r,C9ZL \#
"s6V1Hr9m&i,Jg0}1B'tb4{"y!I2g0 # Do forever - assumes popups could occur anywhere/anytime in your application.
B/BH-d;f l051Testing软件测试网}:yNb?l?loop do
4|l"u f@'REn0j e4Ty5^0Ho[B)a LQ2B0 # Look for window with given title. Give up after 1 second.51Testing软件测试网l,I*J1SFdg1M
9T i$R#c9D5NR0 ret = autoit.WinWait(’消息 — 网页对话框’, ”, 1)51Testing软件测试网p:? H5ZqX2T
AJge,c f0 #ret = WinActivate(”Microsoft Internet Explorer”, “”)51Testing软件测试网pcb!e6h0Xm