watir使用中WindowHelper类处理弹出窗口的方法无法使用问题分析与解决

上一篇 / 下一篇  2008-09-19 19:16:18 / 个人分类:自动化测试技术

写自动化脚本时,经常遇到各种类型的弹出窗口,查看watir的安装目录(C:\ruby\lib\ruby\gems\1.8\gems\watir-1.5.6\watir)发现有几个相关的类,

主要包括:windowhelper,windowclicker等。查看原文件发现,Windowhelper中包含了多种处理弹出窗口的方法,于是决定使用较简单的一种:

代码如下:

@ieq.div(:id,'ks-main').div(:id,'content').div(:id,'main').div(:id,'question').div(:class,'bd').div(:class,'actions').div(:class,'l').link(:text,'关闭问题').click

Thread.new{

@aa=WindowHelper.new

@aa.push_confirm_button_ok

}

 

但运行时,点击关闭问题后,Thread都不会点击弹出窗口的回车按钮。

 

不用WindowHelper,自己写调用Win32oleautoit的脚本,运行仍然不成功。试了很多办法都不成功,被这个问题困扰了一天,终于在国外网站上找到原因,

原因如下:调用WindowApi时,会阻止所有的ruby线程,watirclick_no_wait()就是通过进程实现的。

 

既然如此,有2种解决办法:

1、  click改成click_no_wait ,其他不变,这种方法比较简单

2、  Thread.new中启动进程:

Thread.new {

   System(rubyw –e  ….. )

}


TAG: watir web测试 自动化测试 自动化测试技术

 

评分:0

我来说两句

Open Toolbar