有没有办法在新的浏览器窗口(或浏览器标签)中测试链接是否已打开?
更新
到目前为止,我使用了以下代码:
var newBrowserWindow = Browser.AttachTo<IE>(Find.ByTitle(browserTitle));
Assert.That(newBrowserWindow.hWnd, Is.Not.EqualTo(existingBrowserWindow.hWnd));
我使用existingBrowserWindow打开页面并单击链接。但是当链接在现有浏览器中打开一个新选项卡(IE的默认行为为targer = _blank)时,它具有相同的窗口句柄,因为它是相同的浏览器窗口。那么如何检测新标签?
答案 0 :(得分: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;
}
}
据我所知,WatiN没有支持新标签。但Internet Explorer的默认行为是在新窗口中打开新链接。