私はWatin 2.1を使用して、Webサイトのファイルダウンロードとファイルオープン機能をテストしようとしています. これは Internet Explorer 8 ではうまく機能しましたが、Internet Explorer 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)
ただし、これは同じウィンドウの下のタブではなく、下のウィンドウを取得します。