2012-03-30 95 views
2

我正在學習使用Selenium(v2.20)來領先我們的一些程序員,他們很快就會用它創建一些瀏覽器測試。我想在他們到達之前發現陷阱,並且我偶然發現了一個陷阱。如何在沒有EULA的情況下啓動ChromeDriver.exe?

當我創建我的ChromeDriver時,它始終顯示「Google Chrome EULA」並顯示兩個按鈕:「接受並運行」和「取消」。正如我希望這是一個自動化測試,讓用戶單擊按鈕是不可能的。

我看了一下Chromium Command Switches的列表,但沒有找到任何工作,也沒有提到EULA。如果我(在斷點處)單擊「接受並運行」,然後讓代碼繼續,則測試工作正常。

的代碼,直至引起該問題的線,低於:

using (var driverService = ChromeDriverService.CreateDefaultService(@"C:\Apps\ChromeDriver\")) 
{ 
    driverService.Start(); 

    // This line pops up the EULA 
    IWebDriver driver = new ChromeDriver(@"C:\Apps\ChromeDriver\"); 

    // rest of test... 
} 

有沒有其他人遇到這個問題?如果是這樣,你是如何解決它的?

UPDATE 12年4月4日
我只是跑我在工作電腦上相同的代碼,並沒有觸發EULA(與Slanec的經驗相一致),我成功了。這讓我相信,原因是環境問題。我正在研究兩個系統(兩個Win7 x64)之間的差異以確定原因。一旦我有更多的信息,我會更新。

謝謝了,

-Seth

+0

我剛剛嘗試使用(Java)WebDriver全新安裝Google Chrome 18,並且按預期工作。如果您手動打開Chrome,EULA會顯示嗎?你有哪個版本的Chrome?您是否可以重新安裝它並重新安裝嗎? – 2012-03-30 23:53:56

+0

@Slanec - 我已經有chromedriver.exe的v1.8和v1.9。他們都表現出與上面的代碼相同的行爲。我的實際Chrome瀏覽器是v18,並且不要求EULA,但是我的測試中沒有使用該可執行文件(chrome.exe)。我願意重新安裝Chrome,但首先要耗盡其他選項。感謝您的評論。 – SethO 2012-03-31 21:16:57

+0

適用於我=(。 – 2012-04-02 21:40:16

回答

1

如果你仍然有這個問題,因爲你是開放的Chrome瀏覽器在每次運行測試時一個全新的實例,從而引發出現錯誤EULA。如果您將默認chrome配置文件複製到您選擇的自定義位置,然後將「--user-data-dir = yourcustomlocation」標誌添加到ChromeOptions中,則可以繞過EULA並打開現有配置文件。

ChromeOptions crOptions = new ChromeOptions(); 
crOptions.AddArgument(@"--user-data-dir=C:\custom location"); 
return new ChromDriver(crOptions); 
1

步驟:

  1. 您chromedriver.exe複製到Windows/System32下
  2. 現在轉到您的Chrome文件夾,對我來說是:C:\用戶\ 「%USERNAME%」 \ AppData \ Local \ Google \ Chrome \
  3. 有一個master_preferences文件。
  4. 打開它並顯示錯誤的EULA選項。

它對我有用,希望對你們都有效。

相關問題