テスト中にInternetExplorerを何度も開いたり閉じたりする必要があるテスト方法があります。私はこのようなプロセスを作成しています:
プロセスプロセス=Process.Start(...);
そして、このように閉じます:
process.CloseMainWindow();
ただし、このメソッドを呼び出すことができるのは1回だけであることがわかりました。そうしないと、「プロセスが終了したため、要求された情報を利用できません」というエラーメッセージが表示されます。
プロセスを閉じたら、InternetExplorerを再起動します。例えば
process = Process.Start(...);
しかし、これはうまくいきませんでした。また、Process.Start()メソッドを呼び出す前にProcess変数をヌルにしようとしましたが、これは機能しませんでした。
process.Kill()も使ってみましたが、これも問題を引き起こしました。
これを行う正しい方法は何ですか?
更新:コード
Process Browser;
[TestInitialize]
public void TestSetup()
{
Browser = TestBase.LaunchBrowser();
...
Browser.WaitForInputIdle();
Browser.CloseMainWindow();
Browser = null
Browser = Process.Start("IExplore.exe", ...);
}
[TestMethod]
public void MyTest()
{
// do things
Browser.Kill();
Browser = Process.Start("IExplore", "www.adifferentwebpage");
}
[TestCleanup]
public void TestCleanup
{
Browser.Kill();
}