0

我正在使用Watin 2.1來嘗試爲網站測試文件下載和文件打開功能。 這在Internet Explorer 8中運行良好,但由於Internet Explorer 9在視圖底部有一個黃白色的下載欄,而不是彈出的對話框窗口。獲取MSIE 9中的特定選項卡

我找到了這個答案: https://stackoverflow.com/a/8532222/246622,它解決了這個問題,只要我感興趣的瀏覽器選項卡在上面。 如果頂部有其他選項卡,則無法找到下載欄。 這裏的問題在於,這些測試將在下載開始之前在下載欄上打開選項卡頂部的其他選項卡。

那麼,如何訪問正確的選項卡,或者如何切換Internet Explorer中的頂部/可見選項卡,或者如何讓其他窗口在其他窗口中打開而不是在同一窗口的選項卡中打開,或者如何關閉我的測試應用程序中的其他選項卡?

下面是相關的代碼:

Window windowMain = new Window(WatiN.Core.Native.Windows.NativeMethods.GetWindow(browser.hWnd, 5/*GW_CHILD*/)); // This gets the topmost browser tab. 
System.Windows.Automation.TreeWalker trw = new System.Windows.Automation.TreeWalker(System.Windows.Automation.Condition.TrueCondition); 
mainWindow = trw.GetParent(System.Windows.Automation.AutomationElement.FromHandle(browser.hWnd)); 
windowDialog = new Window(WatiN.Core.Native.Windows.NativeMethods.GetWindow(windowMain.Hwnd, 5)); 

我嘗試這樣做:

var lowerWindow = new Window(WatiN.Core.Native.Windows.NativeMethods.GetWindow(aBrowserTab.Hwnd, 2/*GW_HWNDNEXT*/)); // This gets a next lower window. 

當時我就確定使用正則表達式的標題正確的標籤計劃:

titleRegex.IsMatch(windowMain.ToplevelWindow.Title) 

但在同一個窗口中,這會獲得較低的窗口而不是較低的選項卡。

回答

1

我有類似的問題,經過類似於你正在嘗試的調查,我決定嘗試替代路線。還要注意的是,即使你這樣做是正確的,你仍然需要做很多工作才能將你的測試移植到其他瀏覽器上,並且IE 10將會很快出現。

  1. 您確實需要從瀏覽器下載文件嗎?如何 - 閱讀觸發下載的URL,然後在該URL上執行WebRequest以檢索您的文件?

  2. 看看使用Coded UI - 不是記錄的測試,而是生成的測試。他們能夠在瀏覽器中自動點擊窗口應用程序。另外請注意,開發似乎停止了waitn,因此移動到更可靠的東西可能是有意義的。

相關問題