使用 WatiN 访问每个打开的浏览器 window
Access each open browser window using WatiN
我看不到在 WatiN 中简单地遍历每个打开的浏览器 window 的方法,只能通过附加到第一个实例的 xyz 附加。
基本上,我有多个 windows 具有相同的 url,所以我需要获取这些 windows,然后检查每个的页面内容,然后才能继续使用正确的页面。
这是可能的还是 WatiN 只 return 第一个 window?
您可以使用例如 IECollection
这是示例:
[STAThread]
private static void Main(string[] args)
{
IE _ie = new IE("http://google.com");
IE _ie2 = new IE("http://google.com");
IE _ie3 = new IE("http://google.com");
IE _ie4 = new IE("http://google.com");
Debug.WriteLine(IE.InternetExplorers().Count);
IECollection ies = new IECollection();
foreach (var browser in ies)
{
Debug.WriteLine(browser.Url.ToString());
Debug.WriteLine(browser.hWnd);
IE browser2 = IE.AttachTo<IE>(Find.By("hwnd", browser.hWnd.ToString()));
Thread.Sleep(1000);
browser2.BringToFront();
}
}
我看不到在 WatiN 中简单地遍历每个打开的浏览器 window 的方法,只能通过附加到第一个实例的 xyz 附加。
基本上,我有多个 windows 具有相同的 url,所以我需要获取这些 windows,然后检查每个的页面内容,然后才能继续使用正确的页面。
这是可能的还是 WatiN 只 return 第一个 window?
您可以使用例如 IECollection
这是示例:
[STAThread]
private static void Main(string[] args)
{
IE _ie = new IE("http://google.com");
IE _ie2 = new IE("http://google.com");
IE _ie3 = new IE("http://google.com");
IE _ie4 = new IE("http://google.com");
Debug.WriteLine(IE.InternetExplorers().Count);
IECollection ies = new IECollection();
foreach (var browser in ies)
{
Debug.WriteLine(browser.Url.ToString());
Debug.WriteLine(browser.hWnd);
IE browser2 = IE.AttachTo<IE>(Find.By("hwnd", browser.hWnd.ToString()));
Thread.Sleep(1000);
browser2.BringToFront();
}
}