以前使用watir 1.6x 的时候处理页面
javascript弹出的alert和confrim窗口时必须借助autoit工具来辅助执行,就像
中国男足职业联赛中高价聘请外援一般。
在selenium webdriver中,confirm和alert的处理再也不需要借助任何第三方工具了。
下面的html页面上有1个名为click的button,点击该button后就会弹出1个alert窗口。
<html>
<head>
<title>Alert</title>
</head>
<body>
<input id = "btn" value = "click" type = "button" onclick = "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方法。