2

InternetExplorer8.0でのセレンテストの実行に問題があります。ジェンキンスに。テストに失敗すると、多くのIEDriverServer.exeが表示されます。

ログ内:「ターゲットマシンがアクティブに拒否したため、接続できませんでした」

問題は何ですか?

スクリーンショットへのリンク:多くのIEDriverServer

4

1 に答える 1

4

はい、以前はまったく同じ状況でしたが、真空計が言ったのと同じように行う必要があります。

TestCleanUp()メソッドで、driver.Quit()を呼び出す必要があります。その後、テストが失敗した場合、またはテスト本体で例外がキャッチされた場合でも、テストは適切に終了します。

[TestClass]
public class IEDriverTest {

    private IWebDriver driver;

    [TestInitialize]
    public void Initialize() {
        driver = new InternetExplorerDriver();
    }

    [TestMethod]
    public void Test() {
        // test steps
    }

    [TestCleanup]
    public void CleanupTests() {
        driver.Quit();
    }
}

ただし、まれな状況で、TestInitialize時間(Visual Studio Testing Frameworkを使用)中に例外がキャッチされると、古いバージョンのIEDriverServerがハングすることがありました。次に、例外をキャッチしてdriver.Quit()を手動で呼び出す、少し特別な処理が必要になる場合があります。

driver.Quit()がどういうわけか機能しない場合。ieとIEDriverServerプロセスを手動で強制終了することもできます。ただし、これは避けることを強くお勧めします。

[TestCleanup]
public void Cleanup() {
    KillProcessByName("iexplore");
    KillProcessByName("IEDriverServer");
}

private void KillProcessByName(string processName) {
    foreach (Process process in Process.GetProcessesByName(processName)) {
        process.Kill();
    }
}
于 2012-09-15T10:54:27.747 に答える