如何同时处理多个弹出窗口

时间:2014-04-04 01:26:41

标签: selenium selenium-webdriver

我被问到一个问题,我们是否可以在selenium web驱动程序中处理多个弹出窗口。 坦率地说,我不知道。

但这是正确的方法。假设我们正在这样做,我们的屏幕上有3个弹出窗口。所以:

  • 获取句柄(每个句柄的窗口句柄)
  • 专注于单一窗口
  • 关闭窗口
  • 重复相同并关闭它

如果我错了,请纠正我。 谢谢,美好的一天。 - S.K

1 个答案:

答案 0 :(得分:1)

正如Faiz在评论中提到的,每个窗口的引用都存储在driver.window_handles数组中。

第一个句柄应该是你的主窗口,所以关闭弹出窗口(在Ruby中)可能是这样的:

driver.window_handles[1..-1].each do |handle|
  driver.switch_to.window(handle)
  driver.close
end
driver.switch_to.window(driver.window_handles.first)

处理一些边缘情况,如警报和抛出的异常,但需要更多的代码。