Search code examples
c#seleniumnunitphantomjsghostdriver

GhostDriver doesn't quit after Selenium test run


In my first very simple test of Selenium with GhostDriver (PhantomJS) the tests pass, but PhantomJS.exe doesn't exit. I'm running on Windows 7, PhantomJS 1.9.0, Selenium WebDriver API 2.32.1 and NUnit 2.6.2.12296, .NET 3.5.

Here's my C#/Nunit/WebDriver code:

[TestFixture]
public class Driver
{
    IWebDriver driver;

    [SetUp]
    public void Setup()
    {
        driver = new PhantomJSDriver(@"D:\src\Tests\Drivers");
    }

    [TearDown]
    public void Teardown()
    {
        driver.Quit();
        driver.Dispose();
    }

    [Test]
    public void GoogleSearch()
    {
        //Navigate to the site
        driver.Navigate().GoToUrl("http://www.google.com");
        Assert.AreEqual("Google", driver.Title);
    }
}

And here's everything from PhantomJS:

PhantomJS is launching GhostDriver...
[INFO  - 2013-04-26T16:38:56.417Z] GhostDriver - Main - running on port 64183
[INFO  - 2013-04-26T16:38:56.630Z] Session [c9f2b8e0-ae8f-11e2-a7c1-159b6700bc86
] - CONSTRUCTOR - Desired Capabilities: {"browserName":"phantomjs","version":"",
"platform":"ANY"}
[INFO  - 2013-04-26T16:38:56.649Z] Session [c9f2b8e0-ae8f-11e2-a7c1-159b6700bc86
] - CONSTRUCTOR - Negotiated Capabilities: {"browserName":"phantomjs","version":
"1.9.0","driverName":"ghostdriver","driverVersion":"1.0.3","platform":"windows-7
-32bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"d
atabaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":f
alse,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnab
led":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":
{"proxyType":"direct"}}
[INFO  - 2013-04-26T16:38:56.701Z] SessionManagerReqHand - _postNewSessionComman
d - New Session Created: c9f2b8e0-ae8f-11e2-a7c1-159b6700bc86
[INFO  - 2013-04-26T16:38:59.470Z] ShutdownReqHand - _handle - About to shutdown

But it never does shutdown... Any ideas?


Solution

  • I am not able to reproduce this, using the exact same environment. (Run the test through nunit.exe )

    Windows 7, PhantomJS 1.9.0, Selenium WebDriver API 2.32.1 and NUnit 2.6.2.12296, .NET 3.5.

    As Selenium and PhantomJS have both upgraded to newer versions. I'd suggest you to upgrade yours as well, and see if this issue appears again.

    Selenium: selenium-dotnet-2.33.0.zip

    PhantomJs: phantomjs-1.9.1-windows.zip

    Also a side note, I don't think you need call both Quit() and Dispose(), as from the source code, this is how Quit() method is implemented.

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