Internet Explorer ウィンドウを手動で起動すると、それぞれが異なる PID を取得します。
ただし、1 つのブラウザー ウィンドウを手動で開いて PID 12345 を取得し、いくつかのブラウザー ウィンドウを開く WaitiN を実行すると、すべての WaiiN ウィンドウの PID が 12345 になります。
クリーンアップ コードで WatiN によって開かれたブラウザー ウィンドウを閉じ、WatiN によってのみ開かれたブラウザー ウィンドウの PID を確実に閉じることができるように、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: 2 つの WatiN ウィンドウでベース URL が同じになるため、URL によってブラウザー ウィンドウを強制終了するコードも実行できます。