使用Selenium Webdriver切换到窗口句柄的替代方法

时间:2013-07-30 14:51:49

标签: ruby webview selenium-webdriver

我正在测试包含多个网页浏览量/网页的网页浏览应用。要获取我的网页视图:

$driver.window_handles

返回一个数字窗口索引数组,如['1', '3', '5', '6', '7', '8']

现在,如果我想切换到包含文本“My TITLE”的特定窗口;我必须使用循环遍历数组中的每个索引并将窗口切换到该索引,然后检查该窗口中是否存在该文本。

例如:

$driver.switch_to.window('1') if 'My Title' not found; $driver.switch_to.window('3') and so on until I find the window.

我甚至试图寻找窗口/驱动程序的标题;但对于某些窗口我得到的标题为零,所以不是我找到窗口的最佳方式。

有没有其他方法可以尝试获取所需的窗口?

1 个答案:

答案 0 :(得分:4)

您可以采取以下方法:

#create a array with window_id and its corresponding window page title
wnd_titl = driver.window_handles.map do |w|
  driver.switch_to.window(w)
  [w,driver.title]
end

#required window
win_id = wnd_titl.find { |e1,e2| e2 == 'My TITLE' }.first
driver.switch_to.window(win_id) #switched to the required window