2012-07-05 33 views
6

我需要使用Java中的selenium chrome驅動程序進行測試。但鉻窗不應該打開。假設這是一個產品,並且不應該打開窗口。在不打開任何瀏覽器的情況下使用Java測試硒驅動程序

我也看過這個; Is it possible to hide the browser in Selenium RC? 但我沒有辦法解決。測試應該是獨立於操作系統的,我已經試過HtmlUnitDriver進行測試而不打開任何窗口,但它有一些問題。當通過id查找組件時,它可能無法通過id找到組件。有些服務器可能會根據瀏覽器發送組件ID,我不知道應該使用什麼ID來測試。

因此,我試圖使用鉻驅動程序。

有沒有辦法使用chromedriver而無需打開鉻窗口或另一種方式來測試,而無需在Java中使用Selenium打開任何窗口?

謝謝!

+0

您的應用程序,我不相信,隱藏瀏覽器特定的驅動程序的窗口是可能的。 – Avery 2012-07-05 14:44:26

+0

鏈接問題中的接受答案列出了我所瞭解的所有可能性。嘗試爲HtmlUnitDriver再提供一次機會 - 但[請務必啓用JavaScript支持](http://code.google.com/p/selenium/wiki/HtmlUnitDriver)。如果您特別需要Chrome,則必須使用Saucelabs,Linux和無頭驅動程序,或者提到遠程調用另一臺運行測試的計算機。 – 2012-07-07 14:52:23

回答

6

請使用PhantomJS繼續前進,但如果需要在chromedriver中運行它們並且您有資源,則此博客在running headless selenium with chrome上有一個很好的配方。您無需下載以下...

  • VirtualBox的
  • 流浪
  • 的NodeJS

如果您打算實現Jenkins或任何其他CI在未來,我強烈建議用PhantomJS去雖然。

0

我喜歡這個article

基本上你需要添加在POM PhantomJS依賴(我喜歡Maven的依賴管理):

<dependency> 
    <groupId>com.github.detro.ghostdriver</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.1.0</version> 
</dependency> 

和運行代碼

System.setProperty("phantomjs.binary.path", "c:\\path\\to\\phantomjs-1.9.8-windows\\phantomjs.exe"); 
    WebDriver driver = new PhantomJSDriver(); 
    driver.get("http://www.google.com"); 
    driver.quit(); 

它爲我用的版本:

  • PhantomJS 1.9.8
  • PhantomJS driver 1.1.0
  • 硒2.44.0
0

在硒的網絡驅動程序存在無頭模式。所以在無頭模式下,您可以在不打開網絡瀏覽器的情況下進行自動化。而且我相信,正如硒使用瀏覽器的DOM引擎,你可以部署沒有GUI系統

ChromeOptions options = new ChromeOptions(); 
    // setting headless mode to true.. so there isn't any ui 
    options.setHeadless(true); 

    // Create a new instance of the Chrome driver 
    WebDriver driver = new ChromeDriver(options); 
+1

雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-基於代碼的答案)確實有助於提高您的質量帖子。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – 2018-02-28 21:08:57

相關問題