0

私は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)

ただし、これは同じウィンドウの下のタブではなく、下のウィンドウを取得します。

4

1 に答える 1

1

私も同様の問題を抱えていました。あなたが試みているのと同様の調査の後、私は別のルートを試すことにしました。また、このように正しく処理したとしても、テストを他のブラウザーに移植するために多くの作業が必要になり、IE10が急速にリリースされることにも注意してください。

  1. 本当にブラウザからファイルをダウンロードする必要がありますか?ダウンロードをトリガーするURLを読み取り、そのURLでWebRequestを実行してファイルを取得しますか?

  2. コード化されたUIの使用を見てください-記録されたテストではなく、生成されたテストです。彼らは、ブラウザ内だけでなく、ウィンドウアプリのクリックを自動化することができます。また、開発は待機中に停止したように見えるため、より信頼性の高いものに移行するのが理にかなっている可能性があることにも注意してください。

于 2012-11-15T14:13:00.247 に答える