1

当我手动启动 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 窗口中将是相同的。

4

0 回答 0