多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium webdriver系列教程—如何捕获弹出窗口

更新时间:2022-05-13 09:24:04 作者:多测师 浏览:249

  在web自动化测试中点击一个链接然后弹出新窗口是比较司空见惯的事情。webdriver中处理弹出窗口跟处理frame差不多,以下面的html代码为例

Selenium webdriver系列教程—如何捕获弹出窗口

window.html

<html>

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

<body>

<a id = "soso" href = http://www.soso.com/ target = "_blank">click me</a>

</body>

</html>

  下面的代码演示了如何去捕获弹出窗口

require 'rubygems'

require 'pp'

require 'selenium-webdriver'

dr = Selenium::WebDriver.for :firefox

frame_file = 'file:///'.concat File.expand_path(File.join(File.dirname(__FILE__), 'window.html'))

dr.navigate.to frame_file

dr.find_element(:id =>'soso').click

# 所有的window handles

hs = dr.window_handles

# 当前的window handle

ch = dr.window_handle

pp hs

pp ch

hs.each do |h|

unless h == ch

dr.switch_to.window(h)

p dr.find_element(:id => 's_input')

end

end

  捕获或者说定位弹出窗口的关键在于获得弹出窗口的handle。

  在上面的代码里,使用了windowhandles方法获取所有弹出的浏览器窗口的句柄,然后使用windowhandle方法来获取当前浏览器窗口的句柄,将这两个值的差值就是新弹出窗口的句柄。在获取新弹出窗口的句柄后,使用switchto.window(newwindow_handle)方法,将新窗口的句柄作为参数传入既可捕获到新窗口了。如果想回到以前的窗口定位元素,那么再调用1次switch_to.window方法,传入之前窗口的句柄即可达到目的。

  以上内容为大家介绍了自动化测试中的Selenium webdriver系列教程—如何捕获弹出窗口,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部