2013-07-30 75 views
0

我正在測試一個包含多個webviews /頁面的webview應用程序。爲了讓網頁視圖我做的:使用Selenium Webdriver切換到窗口句柄的另一種方法

$driver.window_handles 

如果我想切換到包含文本「我的標題」一個特定的窗口,它返回我的號碼的東西窗口索引像['1', '3', '5', '6', '7', '8']

數組現在;我必須循環訪問數組中的每個索引,並將窗口切換到該索引,然後檢查文本是否存在於該窗口中。

如:

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

我甚至試圖尋找窗口/驅動器的稱號;但是對於某些窗口,我將標題設置爲零,因此不是查找窗口的最佳方式。

有沒有其他辦法可以嘗試獲得所需的窗口?

回答

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 
相關問題