当我手动启动 Internet Explorer 窗口时,每个窗口都会获得不同的 PID。
但是,假设我手动打开了一个浏览器窗口,它获得了 PID 12345,然后运行 WaitiN 打开了一些浏览器窗口,所有 WaiiN 窗口的 PID 变为 12345。我怎样才能改变行为,以便让 WatiN 像手动工作一样工作。
我需要 PID,以便我可以在我的清理代码中关闭由 WatiN 打开的浏览器窗口,并确保关闭仅由 WatiN 打开的浏览器窗口的 PID。
编辑:
我使用的代码是:
//Where I am using WatiN 1
IE ReportWindow = IE.AttachToNoWait<IE>(Find.ByTitle("New Activity Recap"), 120);
ReportWindowPID = ReportWindow.ProcessID;
//Where I am using WatiN 2
IE ReportWindow = IE.AttachToNoWait<IE>(Find.ByTitle("New Activity Recap"), 120);
ReportWindowPID = ReportWindow.ProcessID;
//Cleanup code
foreach (Process p in System.Diagnostics.Process.GetProcessesByName("iexplore"))
{
if (p.Id == ApplicationWindowPID || p.Id == ReportWindowPID)
{
try
{
p.Kill();
p.WaitForExit();
}
catch
{
}
}
}
上面的代码正在关闭 WatiN 打开的 2 个窗口以及其他窗口。
PS:任何通过 URL 杀死浏览器窗口的代码也可以这样做,因为基本 URL 在 2 个 WatiN 窗口中将是相同的。