如何防止IEDriverServer.exe进程多次启动?

时间:2013-08-12 22:39:44

标签: asp.net internet-explorer selenium selenium-webdriver

我正在使用Selenium和IE Web Driver。每当我的测试开始时,IE驱动程序服务器也会启动,但在测试完成后它不会关闭/退出。因此,对于下一次测试运行,我最终会有多个IEDriverServer.exe进程实例。如何在试运行后关闭它?

以下是我使用的示例代码:

[TestClass]
public class UnitTest1
{
    [TestMethod]
    public void TestMethod1()
    {
        var ie = new OpenQA.Selenium.IE.InternetExplorerDriver(new OpenQA.Selenium.IE.InternetExplorerOptions() {
             IntroduceInstabilityByIgnoringProtectedModeSettings = true
        });
        ie.Navigate().GoToUrl("http://localhost:50640/");
        ie.Close();
        ie.Close(
        Assert.IsTrue(true);
    }
}

我知道我可以使用ProcessInfo来杀死它,但拥有Selenium解决方案会很不错。

1 个答案:

答案 0 :(得分:4)

您是否尝试过使用ie.Quit();

请参阅documentationsource code

Quit()是完全退出的(浏览器和驱动程序)。

Close()用于关闭浏览器窗口。这就是为什么在您的情况下,IEDriverServer.exe保持打开状态。

<强> IWebDriver.cs

/// <summary>
/// Close the current window, quitting the browser if it is the last window currently open.
/// </summary>
void Close();

/// <summary>
/// Quits this driver, closing every associated window.
/// </summary>
void Quit();

RemoteWebDriver.cs (这是 InternetExplorerDriver.cs 的基类)

/// <summary>
/// Closes the Browser
/// </summary>
public void Close()
{
    this.Execute(DriverCommand.Close, null);
}

/// <summary>
/// Close the Browser and Dispose of WebDriver
/// </summary>
public void Quit()
{
    this.Dispose();
}