2

我在 Internet Explorer 8.0 上运行 selenium 测试时遇到问题。关于詹金斯。测试失败,然后出现很多IEDriverServer.exe。

在日志中:“无法建立连接,因为目标机器主动拒绝它”

什么是问题?

截图链接:很多 IEDriverServer

4

1 回答 1

4

是的,之前有完全一样的情况,应该像 aneroid 所说的那样做。

在您的 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 测试框架)捕获异常时,一些旧版本的 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 回答