师傅领进门,修行靠个人。

Selenium-webdriver——如何处理alert和confirm(JS弹出窗口)

上一篇 / 下一篇  2012-06-09 12:34:12 / 个人分类:selenium

之前测试公司的网站也遇到过浏览器自动弹出的alert和confirm处理信息,或者是一些JS弹出小窗口,当时一直没找到解决方法,在此灰常感谢乙醇的blog。

下面的html页面上有1个名为click的button,点击该button后就会弹出1个alert窗口。

<html>

    <head>

        <title>Alert</title>

    </head>

    <body>

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

    </body>

</html>

selenium webdriver处理alert的代码如下:

require 'rubygems'
require 'selenium-webdriver'
dr = Selenium::WebDriver.for :firefox
frame_file = 'file:///'.concat File.expand_path(File.join(File.dirname(__FILE__), 'alert.html'))
dr.navigate.to frame_file dr.find_element(:id =>'btn').click a = dr.switch_to.alert puts a.text #--> hello a.accept

上面代码的思路是先点击id为btn的按钮,然后a = dr.switch_to.alert返回了1个alert element(暂时如此理解好了)并赋值给变量a。这样a就代表了alert,使用puts a.text语句可以输出alert的内容,这里会打印出’hello’。

a.accept表示点击确认,当弹出窗口为confrim时,a.accept也表示确认,如果需要取消的话,那么则可以使用a.dismiss方法。

备注:

核心的代码主要是:

a = dr.switch_to.alert
a.accept# 点击确认a.dismiss# 点击取消





TAG:

 

评分:0

我来说两句

Open Toolbar