在实际的测试过程中,所有的业务操作不会在一个页面内完成,经常会做的工作就是弹出一个新的窗口,想新的窗口中进行操作,虽然目前很多比较流畅的页面设计都尽量避免使用这种方式,不过弹出窗口还是存在于很多web应用中。
一般弹出窗口有这么四类:
使用window.open的js命令弹出一个新的浏览器,这种方式遇到的比较少,因为实在不美观;
有一种叫做模态窗口,这个相当于页面在子窗口,子窗口不关闭,主窗口无法进行操作,也无法关闭,这种窗口一般使用window.showModalDialog来打开;
还有比较常见的窗口,就是js中的提示窗口,一共有三种alert,comfirm,prompt,而前两种尤其是第一种是比较常见的方法,这种弹出窗口js的代码比较简单,应用范围也比较广,这部分的处理将放到下一节来说明;
最后一种,是目前比较流行的,应用于各种web页面框架中,就是使用div通过js层的控制弹出的窗口,从从属关系上,这种弹出窗口是属于本页面的,只是显示的层次在最上次而已,处理方式与处理本页面的控件没有任何差别,下面就不做详细说明了。
弹出一个新的window窗口(window.open)
当打开了一个新的窗口,可以通过如下的代码来,访问新的窗口:
browser.window(:title => "annoying popup").use do
browser.button(:id => "close").click
end
下面有一个例子
#windows.html
<html>
<head>
<title>window open</title>
</head>
<body>
<a href="#" onclick="javascript:window.open('iframe-part1.html')">new window</a>
<a href="#" onclick="javascript:window.showModalDialog('iframe-part1.html')">new modal window</a>
</body>
</html>
#iframe-part1.html
<html>
<head>
<title>iframe_part1</title>
</head>
<body>
<p> -000000- </p>
<input type="text" name="fname" />
</body>
</html>
运行上面的代码,然后单击new_window,大致效果如下,弹出的窗口会是一个新的浏览器:
之后可以通过类似如下的代码来处理弹出窗口
b.window(:title=>"iframe_part1").use do
b.text_field(:name=>"fname").set "ok"
end
注意这里使用window.use之后,相当于你的操作焦点由原来的窗口转移到了,新的窗口上,在do..end之间的操作都是对弹出窗口的操作。这种代码样式可能对于很多对ruby不太了解的人,还是比较糊涂的,可以查看一下相关的ruby教程。
弹出一个新的modal dialog窗口(showModalDialog)
模态窗口,与上面所说的弹出窗口的处理方式差不多,只是样式上略有所不同,上面的方法会弹出一个新的窗口,而这个是一个窗口的子窗口。就像开篇说的一样,这种窗口有强烈的父子关系,子窗口不关闭,对父窗口不能进行任何操作,具体样式如图:
这种窗口的处理方法与上一种方式相同,不过注意,如果使用标题的话应该写成b.window(:title=>"iframe_part1"),不用带后面的“- 网页对话框”。
一些技巧
查找打开的弹出窗口,可以通过弹出窗口的title,url来进行识别,不过更多时候,这两个属性都不是很好确定。可以使用b.windows查看出所有相关的弹出窗口,然后可以通过遍历进行相关信息的判断,来选择你需要的窗口。甚至一般新打开的窗口都是b.windows中的最后一个元素,可以通过对最后一个元素进行操作。
- 大小: 24.6 KB
- 大小: 22.4 KB
分享到:
相关推荐
在Linux环境下进行自动化测试时,Watir-Webdriver是一个非常有用的工具。它是一个Ruby库,允许用户使用Ruby语言控制浏览器,进行网页元素的交互和测试。Watir是“Web Application Testing in Ruby”的缩写,而...
### WATIR-WEBDRIVER自动化学习指导 #### 一、简介 WATIR-WEBDRIVER是一款基于Ruby语言的Web自动化测试框架,它能够帮助开发者和测试工程师编写高效的自动化测试脚本。WATIR(Web Application Testing In Ruby)与...
ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)
ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 WebDriver 通路协议的支持,因此可以轻松与现有的 WebDriver 测试工具相整合。不熟悉 WebDriver 的用户可以参考 2009 年的项目发布...
压缩包中包含目前2013/01/19最新的安装文件,有rubyinstaller-1.9.2-p136、DevKit-tdm-32-4.5.1-20101214-1400-sfx、rubygems-1.8.24、watir-4.0.2、watir-webdriver-0.6.2等文件,并附上简略安装说明。
使用watir-webdriver删除百度空间所有文章的ruby脚本
最后,“watir-webdriver”是Watir的一个分支,它利用Selenium WebDriver接口,直接与浏览器的内核进行通信,增强了对浏览器的控制能力,如处理JavaScript交互、模拟用户行为等。WebDriver是一个跨平台的标准,使得...
wairt-webdriver.aip包含了chromedriver.exe、DevKit。、IEDriverServer.exe rubyinstaller-2.1.5.exe、Ruby语言入门教程v1.0这几个文件,是使用wati-webdriver进行安装部署以及ruby语言学些所需要的必不可少的资料...
watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn中文语言包 watir-cn...
对于"watir安装所需要的gem包",主要涉及的Gem包有`watir-webdriver`和`selenium-webdriver`。`watir-webdriver`是Watir的一个版本,它使用Selenium WebDriver作为后端,与浏览器进行通信。而`selenium-webdriver`则...
它可以与watir和selenium-webdriver一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...
"Watir-Bonus-1.5.2" 是一个专门用于Web自动化测试的工具,它扩展了Watir(Web Application Testing in Ruby)的功能,提供了一系列额外的便利特性,旨在简化和增强网页应用的自动化测试过程。这个版本是1.5.2,表明...
Watir-webdriver需要浏览器的WebDriver驱动,例如对于Internet Explorer,需要下载IEDriverServer,并将其放在Ruby安装目录下的bin文件夹中。同样,对于Chrome,需要下载ChromeDriver并放置在相同位置。 6. **环境...
1. **选择合适的工具和技术栈**:根据项目需求选择合适的编程语言(如Ruby)和测试框架(如Watir-WebDriver)。 2. **环境准备**:搭建必要的开发环境,例如安装Ruby、DevKit等。 3. **设计框架结构**:定义测试脚本...
**标题:“Watir-Bonus-1.5.1.1230.zip”** 这个压缩包包含的是Watir的扩展版本1.5.1的1230次更新,名为“Bonus”。Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得...
开源自动化测试工具组合:Ruby+Watir安装 安装准备: 1. 工具安装包准备: Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6 Watir下载地址:...
Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...