0

我正在使用 Watin 2.1 尝试测试网站的文件下载和文件打开功能。这在 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

我遇到了类似的问题,经过与您尝试的类似的调查后,我决定尝试替代路线。另请注意,即使您这样做是正确的,您也需要做很多工作才能将您的测试移植到其他浏览器上,并且 IE 10 的发布速度很快。

  1. 你真的需要从浏览器下载文件吗?怎么样 - 读取触发下载的 URL,然后在该 URL 上执行WebRequest以检索您的文件?

  2. 看看使用Coded UI - 不是记录的测试,而是生成的测试。他们能够自动点击窗口应用程序以及在浏览器中。另请注意,开发似乎确实在 waitn 上停止了,因此转向更可靠的东西可能是有意义的。

于 2012-11-15T14:13:00.247 回答