2012-07-16 317 views
9

我創建了一個使用C#中的硒和ChromeDriver自動化Chrome的播放器。它工作正常。ChromeDriver控制檯應用程序隱藏

問題是我面對的是,當它爲ChromDriver創建一個對象時,它將啓動ChromeDriver應用程序,該應用程序會彈出,然後Chrome會加載。這是完美的,因爲該應用程序正在爲我加載該鉻。

無論如何,我可以打開ChromeDriver隱藏?

+0

這個軟件是爲測試。在這方面,控制檯窗口是一件受歡迎的事情。我不確定你使用的是什麼,但聽起來像是沒有測試。對於潛在的問題,可能會有更好的解決方案,例如直接進行API調用,而不是通過瀏覽器。 – 2017-06-23 15:18:25

回答

6

是的,您需要修改WebDriver \ DriverService.cs中的源代碼Start(); add:

this.driverServiceProcess.StartInfo.CreateNoWindow = true; 
+0

不要使用Selenium項目的完整構建過程來做這件事。在Visual Studio中簡單構建不會爲您提供與Selenium項目構建腳本生成的組件等效的組件。 – JimEvans 2013-05-01 22:40:11

12

不,沒有辦法在.NET綁定中隱藏chromedriver.exe的控制檯窗口,而無需修改綁定源代碼。這被看作是綁定的一個特性,因爲它很容易看到你的代碼沒有正確清理ChromeDriver的資源,因爲控制檯窗口保持打開狀態。在其他語言的情況下,如果您的代碼沒有通過調用WebDriver對象上的quit()方法來正確清理ChromeDriver的實例,則最終可能會在您的計算機上運行zombie chromedriver.exe進程。

+8

哇,認真,downvoters?只是因爲一個答案不是你想聽到的並不是一個不正確或不好的答案。我可以保證這個答案在所有方面都是完全正確的,包括對作者意圖的猜測(因爲我是作者)。 – JimEvans 2013-05-01 22:34:15

+0

你好@JimEvans - 我在其中一臺電腦上遇到了相反的問題。這臺電腦隱藏了IEDriverServer和ChromeDriver的所有控制檯窗口,我不知道爲什麼。該代碼沒有任何這些特定選項,並且代碼在其他計算機上運行時窗口是可見的。任何見解?謝謝! – AngieM 2016-10-17 13:19:08

+0

@AngieM你使用.NET語言綁定?如果沒有,那麼這個問題中的信息不適用於你。其他語言(Python,Ruby,Java)可能無法完全控制是否出現單獨的命令提示符窗口。 – JimEvans 2016-10-17 13:25:42

26

在最新的WebDriver中,無需修改WebDriver \ DriverService.cs中的源代碼。您只需實例化ChromeDriverService並將HideCommandPromptWindow設置爲true,然後通過該服務和ChromeOptions實例化ChromeDriver。我給C#代碼示例如下

 var chromeDriverService = ChromeDriverService.CreateDefaultService(); 
     chromeDriverService.HideCommandPromptWindow = true; 
     return new ChromeDriver(chromeDriverService, new ChromeOptions()); 
+2

您還可以將路徑添加到驅動程序二進制ChromeDriverService :: CreareDefaultService(pathToBinary); – kirsche40 2015-06-18 15:28:36

相關問題