ChromeDriver控制台应用程序隐藏
我创建了一个使用C#中的硒和ChromeDriver自动化Chrome的播放器。它工作正常。ChromeDriver控制台应用程序隐藏
问题是我面对的是,当它为ChromDriver创建一个对象时,它将启动ChromeDriver应用程序,该应用程序会弹出,然后Chrome会加载。这是完美的,因为该应用程序正在为我加载该铬。
无论如何,我可以打开ChromeDriver隐藏?
是的,您需要修改WebDriver \ DriverService.cs中的源代码Start()
; add:
this.driverServiceProcess.StartInfo.CreateNoWindow = true;
不要使用Selenium项目的完整构建过程来做这件事。在Visual Studio中简单构建不会为您提供与Selenium项目构建脚本生成的组件等效的组件。 – JimEvans 2013-05-01 22:40:11
不,没有办法在.NET绑定中隐藏chromedriver.exe的控制台窗口,而无需修改绑定源代码。这被看作是绑定的一个特性,因为它很容易看到你的代码没有正确清理ChromeDriver的资源,因为控制台窗口保持打开状态。在其他语言的情况下,如果您的代码没有通过调用WebDriver对象上的quit()
方法来正确清理ChromeDriver的实例,则最终可能会在您的计算机上运行zombie chromedriver.exe进程。
哇,认真,downvoters?只是因为一个答案不是你想听到的并不是一个不正确或不好的答案。我可以保证这个答案在所有方面都是完全正确的,包括对作者意图的猜测(因为我是作者)。 – JimEvans 2013-05-01 22:34:15
你好@JimEvans - 我在其中一台电脑上遇到了相反的问题。这台电脑隐藏了IEDriverServer和ChromeDriver的所有控制台窗口,我不知道为什么。该代码没有任何这些特定选项,并且代码在其他计算机上运行时窗口是可见的。任何见解?谢谢! – AngieM 2016-10-17 13:19:08
@AngieM你使用.NET语言绑定?如果没有,那么这个问题中的信息不适用于你。其他语言(Python,Ruby,Java)可能无法完全控制是否出现单独的命令提示符窗口。 – JimEvans 2016-10-17 13:25:42
在最新的WebDriver中,无需修改WebDriver \ DriverService.cs中的源代码。您只需实例化ChromeDriverService并将HideCommandPromptWindow设置为true,然后通过该服务和ChromeOptions实例化ChromeDriver。我给C#代码示例如下
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
return new ChromeDriver(chromeDriverService, new ChromeOptions());
您还可以将路径添加到驱动程序二进制ChromeDriverService :: CreareDefaultService(pathToBinary); – kirsche40 2015-06-18 15:28:36
现在,您可以使用此:
var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
var driver = new ChromeDriver(driverService, new ChromeOptions());
来源:http://yizeng.me/2014/03/05/hide-command-prompt-window-in-selenium-webdriver-net-binding/
现在链接无效。 – 2017-01-04 08:55:09
这个软件是为测试。在这方面,控制台窗口是一件受欢迎的事情。我不确定你使用的是什么,但听起来像是没有测试。对于潜在的问题,可能会有更好的解决方案,例如直接进行API调用,而不是通过浏览器。 – 2017-06-23 15:18:25