2011-01-20 81 views
1

有没有一种方法来测试在新的浏览器窗口(或浏览器选项卡)中打开链接?检测新的浏览器窗口与WATIN

更新:

到目前为止,我用下面的代码:

var newBrowserWindow = Browser.AttachTo<IE>(Find.ByTitle(browserTitle)); 
Assert.That(newBrowserWindow.hWnd, Is.Not.EqualTo(existingBrowserWindow.hWnd)); 

当我用existingBrowserWindow打开一个页面,点击一个链接。但是,当链接在现有浏览器中打开一个新选项卡时(IE的默认行为为targer = _blank),它具有相同的窗口句柄,因为它是相同的浏览器窗口。那么我如何检测一个新标签呢?

回答

4

你的一些代码,将有助于...,

不管怎么说,当一个链接打开一个新的浏览器窗口,我做的是

using (var newBrowser = WatiN.Core.Browser.AttachTo<IE>(Find.ByTitle("Analytics - Read conversation")) 
{ 
} 

Browser.AttachTo根据文档支持Find.ByUri()Find.ByTitle()Find.By("hwnd", windowHandle)。我只测试了Find.ByUri()Find.ByTitle()方法。

,如果你想,如果你的行动开辟了新的窗口,来检测你可以做

public bool TryGetNewBrowser(out IE browser, string title) 
{ 
    try 
    { 
     browser = WatiN.Core.Browser.AttachTo<IE>(Find.ByTitle(title)); 
     return true; 
    } 
    catch(WatiN.Core.Exceptions.BrowserNotFoundException) 
    { 
     browser = null; 
     return false; 
    } 
} 

据我所知,目前在华廷新的选项卡不支持。但是Internet Explorer的默认行为是在新窗口中打开新的链接。

+0

嗨,我编辑我的帖子,包括一些代码。那么,实际上我想确保一个链接正在一个新窗口而不是同一个窗口中打开。因此,仅仅寻找现有的浏览器是不够的,我还必须确定,它与点击链接的浏览器窗口不同。 – nyn3x 2011-01-21 12:24:39