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