今天是一个高兴的日子,我终于成功地利用AutoIt关闭IE弹窗了。
利用Watir进行网页测试已经有2年多了,但始终在处理IE弹窗上卡壳,网上有不少介绍和例子可供借鉴,但以前均未能测试成功。
先将代码列出:
require 'watir'
require 'win32ole'
require 'watir/windowhelper'
.........
ie33.link(:id, "something").click_no_wait
sleep 3 #时间长短可能影响能否关闭弹窗
#sleep 2
puts "before autoit"
autoit = WIN32OLE.new('AutoItX3.Control')
puts "before loop do"
loop do
puts "in loop"
#ret = autoit.WinWaitActive("Windows Internet Explorer", "",9)
#ret = autoit.WinWaitActive("来自网页的信息", "",9)
ret = autoit.WinWaitActive("Microsoft Internet Explorer", "",9)
puts "after ret"
puts(ret)
if (ret==1)
autoit.Send("{Enter}")
exit
end
sleep 3
end
以前不成功的原因,主要是测试用电脑的环境不一样,今天尝试以上代码时,刚开始也不成功,ret始终等于0,偶然用鼠标碰了一下IE窗口,ret变为1。这才发现
ie33.link(:id, "something").click_no_wait
语句之后的sleep时间长短很关键,不同的电脑以及网络速度不同,sleep时间不匹配的话,以上代码不能正常运行。
比较疑惑的是,以下代码不能正常运行:
Thread.new{
puts "before autoit"
autoit = WIN32OLE.new('AutoItX3.Control')
puts "before loop do"
loop do
puts "in loop"
#ret = autoit.WinWaitActive("Windows Internet Explorer", "",9)
#ret = autoit.WinWaitActive("来自网页的信息", "",9)
ret = autoit.WinWaitActive("Microsoft Internet Explorer", "",9)
puts "after ret"
puts(ret)
if (ret==1)
autoit.Send("{Enter}")
exit
end
sleep 3
end
}
ie33.link(:id, "something").click_no_wait
在将
ie33.link(:id, "something").click_no_wait
修改为
ie33.link(:id, "something").click
之后,以上代码运行成功。
我自己的原创: http://www.sdgz.cn
分享到:
相关推荐
首先,通过Cucumber定义清晰的测试场景,然后利用Watir编写具体的测试步骤,最后在遇到Windows交互难题时,调用AutoIt进行补充。这样,不仅确保了测试的覆盖率,还提高了测试的效率,降低了人为错误的可能性。 总结...
watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn...
**Ruby Watir** 是一种用于网页自动化测试的工具库,它能够模拟用户在浏览器中的操作行为,如点击按钮、填写表单等,非常适合进行功能测试、回归测试和系统测试。 #### 二、安装Ruby Watir ##### 1. 安装Ruby环境 ...
然而,随着时间的推移,Watir也在不断改进,其稳定性已经大大提高。 - **可维护性**:Watir的脚本因为更接近于自然语言,所以在修改和维护方面相对容易些。 - **代码行数**:一般情况下,使用Watir编写的脚本比使用...
watir测试框架介绍 watir测试框架介绍 watir测试框架介绍
3. **Watir库**: 在Ruby环境中,使用`gem install watir`命令安装Watir库。 4. **其他依赖库**: 根据你的需求,可能还需要安装其他的辅助库,如`rspec`用于编写规范化的测试代码。 ### **三、API介绍** Watir提供了...
Watir,全称为Web Application Testing in Ruby,是一个用于自动化浏览器操作的开源库,它使得编写测试脚本变得简单直观,可以模拟用户在浏览器中的各种交互行为。在Ruby编程语言环境中,Watir允许开发者通过编写...
**Watir API CHM文档详解** Watir,全称Web Application Testing In Ruby,是一个用于自动化浏览器操作的开源库,...在实际工作中,结合具体的项目需求和测试场景,灵活运用Watir API,能够大大提高测试效率和质量。
安装命令:gem install watir --local。
在尝试安装 Watir 时遇到问题,尤其是在服务器 2003 上。主要问题是 Watir 的依赖包 `activesupport` 需要 Ruby 版本 >= 1.8.7,而当前系统上安装的是 Ruby 1.8.6。此外,RubyGems 的自动更新功能也出现了问题。 ##...
在这个文件中,你可以看到如何使用Watir库来定位和操作网页元素,例如: 1. 导入Watir库:`require 'watir'` 2. 创建浏览器实例:`browser = Watir::Browser.new :chrome`(或其他浏览器) 3. 访问网页:`browser....
它的设计目的是模拟人们在浏览器中的行为,如点击链接、填写表单和按下按钮,并能够检查预期的文本是否出现在页面上。Watir适用于各种类型的Web应用程序,包括ASP.Net、JSP、PHP和Rails等。由于其开源特性,Watir由...
Ruby-Watir是一种开源自动化测试框架,专门用于在Ruby编程语言中进行Web应用程序的测试。它允许开发者通过编写Ruby代码来模拟用户与浏览器的交互,从而实现端到端的测试。这个工具的名字“Watir”是“Web ...
在IT行业中,自动化测试是提升效率、确保软件质量的关键手段之一。Ruby作为一种简洁且强大的编程语言,被广泛用于编写自动化测试脚本。Watir(Web Application Testing in Ruby)是Ruby社区开发的一个开源库,它允许...
Watir,全称为Web Application Testing in Ruby,是一个用于自动化浏览器操作的开源测试框架。...在实际应用中,可能还需要结合其他Ruby库和工具,如Selenium WebDriver,以实现更复杂的浏览器自动化测试。
然而,`click_no_wait`方法在某些版本的Watir中可能已经被弃用或不存在,因此在更新的版本中寻找替代方案是必要的。这篇博客文章(尽管描述部分为空,但根据标题推测)可能是介绍如何在Watir中实现类似`click_no_...