Selenium Webdriver PhantomJS C#总是打开一个cmd窗口

我想在C#中使用PhantomJS和Selenium Webdriver。 以下是我的代码:

IWebDriver driver = new PhantomJSDriver(); driver.Navigate().GoToUrl("http://www.google.com"); Console.WriteLine(driver.Url); driver.Quit(); 

代码工作正常但无论何时运行,它都会打开一个cmd窗口,其中显示了phantomjs的所有日志。 cmd也用driver.Quit()关闭。

问题是我不希望显示cmd窗口。 我该怎么做才能做到这一点?

更新:当我在Python中执行相同的代码时,cmd窗口不会显示。 但是如果我使用py2exe将python脚本转换为exe,则cmd窗口将再次显示。

不,在没有修改绑定源代码的情况下,无法在.NET绑定中隐藏PhantomJS.exe的控制台窗口。 这被视为绑定的一个特性,因为它很容易看到你的代码没有正确清理PhantomJSDriver的资源,因为控制台窗口保持打开状态。 对于某些其他语言,如果您的代码未通过调用WebDriver对象上的quit()方法正确清理PhantomJSDriver实例,则最终可能会在您的计算机上运行僵尸PhantomJS.exe进程。

正如JimEvans上面提到的,这个function在2.40中添加:

https://code.google.com/p/selenium/source/detail?r=bd0e4ef7504cd6a7f184b19b2aa95b56f8958ab5

我不确定如何正确使用PhantomJSDriverService ,但以下工作:

 var driverService = PhantomJSDriverService.CreateDefaultService(); driverService.HideCommandPromptWindow = true; var driver = new PhantomJSDriver(driverService);