所有IE窗口的进程ID相同

时间:2013-01-08 03:56:12

标签: c# watin

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

0 个答案:

没有答案