`
dtrex
  • 浏览: 139559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

说说watir-webdriver那些事(七)如何处理JS弹出窗口

 
阅读更多

首先举个例子,html的js弹出窗口的代码如下:

<html>

    <head><title>Popup Window</title></head>

    <body>

	<input id = "btn" value = "click" type = "button" onclick = "alert('hello');"/>
    </body>

</html>
 当点击按钮会弹出相应的js提示框来,我们一般叫他js弹出窗口。

 

对于JS的弹出窗口一般常见的有两种,alert/confirm两种,watir-webdriver也有自己的处理方式,我先贴出来:

 

 

require "watir-webdriver/extensions/alerts"
JAVASCRIPT ALERTS
browser.alert do
  browser.button(:value => 'Alert').click
end #=> 'the alert message'
JAVASCRIPT CONFIRMS
browser.confirm(true) do
  browser.button(:value => 'Confirm').click
end #=> 'the confirm message'
JAVASCRIPT PROMPT
browser.prompt('hello') do
  browser.button(:value => 'Prompt').click
end #=> { :message => 'foo', :default_value => 'bar' }
 

不过我用起来,不太方便,我觉得调用底层的selenium-webdriver会比较简单,比方说处理alert的方法

 

 

 

a = b.driver.switch_to.alert
p a.text
a.accept

 

如果使用Confirm取消用a.dismiss。这样用起来比较简单

 

还有一种方式就是就是不让窗口弹出来,主要是通过覆盖js原有的方法,具体代码如下,可供参考

 

 

# don't return anything for alert
browser.execute_script("window.alert = function() {}")
 
# return some string for prompt to simulate user entering it
browser.execute_script("window.prompt = function() {return 'my name'}")
 
# return null for prompt to simulate clicking Cancel
browser.execute_script("window.prompt = function() {return null}")
 
# return true for confirm to simulate clicking OK
browser.execute_script("window.confirm = function() {return true}")
 
# return false for confirm to simulate clicking Cancel
browser.execute_script("window.confirm = function() {return false}")
分享到:
评论
1 楼 zhenxiong25 2012-03-07  
越来越看不懂   

相关推荐

    linux环境下watir-webdriver离线安装包

    在Linux环境下进行自动化测试时,Watir-Webdriver是一个非常有用的工具。它是一个Ruby库,允许用户使用Ruby语言控制浏览器,进行网页元素的交互和测试。Watir是“Web Application Testing in Ruby”的缩写,而...

    WATIR-WEBDRIVER自动化学习指导

    ### WATIR-WEBDRIVER自动化学习指导 #### 一、简介 WATIR-WEBDRIVER是一款基于Ruby语言的Web自动化测试框架,它能够帮助开发者和测试工程师编写高效的自动化测试脚本。WATIR(Web Application Testing In Ruby)与...

    ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份

    ruby2.0.0+selenium-webdriver+watir-webdriver+rails离线备份,设置环境变量后可使用(未测试)

    watir-webdriver谷歌浏览器驱动

    ChromeDriver 是一款以 Google Chrome 为环境测试网站的工具,现已实现对开源的 WebDriver 通路协议的支持,因此可以轻松与现有的 WebDriver 测试工具相整合。不熟悉 WebDriver 的用户可以参考 2009 年的项目发布...

    Watir-Webdriver最新安装文件(全)

    压缩包中包含目前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删除百度空间所有文章的ruby脚本

    test_logger1.rar_Logger wat_ruby _watir_watir ruby_watir-webdriv

    最后,“watir-webdriver”是Watir的一个分支,它利用Selenium WebDriver接口,直接与浏览器的内核进行通信,增强了对浏览器的控制能力,如处理JavaScript交互、模拟用户行为等。WebDriver是一个跨平台的标准,使得...

    watir-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-cn...

    watir安装所需要的gem包

    对于"watir安装所需要的gem包",主要涉及的Gem包有`watir-webdriver`和`selenium-webdriver`。`watir-webdriver`是Watir的一个版本,它使用Selenium WebDriver作为后端,与浏览器进行通信。而`selenium-webdriver`则...

    页面对象:在watir-webdriver和selenium-webdriver中实现PageObject模式的宝石

    它可以与watir和selenium-webdriver一起使用。 文献资料 项目是学习如何使用页面对象的第一个地方。 可以在上找到该项目的 。 要查看各个发行版之间的更改,请查看 要了解这种宝石的动机,请阅读此 有一本书...

    watir-bonus-1.5.2

    "Watir-Bonus-1.5.2" 是一个专门用于Web自动化测试的工具,它扩展了Watir(Web Application Testing in Ruby)的功能,提供了一系列额外的便利特性,旨在简化和增强网页应用的自动化测试过程。这个版本是1.5.2,表明...

    win7上搭建cucumber+watir自动化环境

    Watir-webdriver是Watir的一个分支,专门用于WebDriver接口,支持多种浏览器的自动化测试。安装命令如下: ``` gem install watir-webdriver --no-rdoc --no-ri gem install watir-webdriver-performance --no-...

    自动化测试框架

    1. **选择合适的工具和技术栈**:根据项目需求选择合适的编程语言(如Ruby)和测试框架(如Watir-WebDriver)。 2. **环境准备**:搭建必要的开发环境,例如安装Ruby、DevKit等。 3. **设计框架结构**:定义测试脚本...

    watir-bonus-1.5.1.1230.zip

    **标题:“Watir-Bonus-1.5.1.1230.zip”** 这个压缩包包含的是Watir的扩展版本1.5.1的1230次更新,名为“Bonus”。Watir(Web Application Testing in Ruby)是一个开源的Ruby库,用于自动化浏览器操作,它使得...

    watir-1.6.5.gem

    开源自动化测试工具组合:Ruby+Watir安装 安装准备: 1. 工具安装包准备: Ruby官方下载地址:http://www.ruby-lang.org/zh_cn/downloads/,稳定版本Ruby 1.8.6 Watir下载地址:...

    ruby 2.00 selenium webdriver,watir webdriver 备份打包

    Ruby 2.00、Selenium WebDriver 和 Watir WebDriver 是自动化测试领域中广泛使用的工具,尤其在Web应用程序的测试中。下面将详细讲解这三个概念及其相互关系。 Ruby 2.00 是Ruby编程语言的一个版本,发布于2013年,...

Global site tag (gtag.js) - Google Analytics