我正在测试包含多个网页浏览量/网页的网页浏览应用。要获取我的网页视图:
$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.
我甚至试图寻找窗口/驱动程序的标题;但对于某些窗口我得到的标题为零,所以不是我找到窗口的最佳方式。
有没有其他方法可以尝试获取所需的窗口?
答案 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