2012-07-05 11 views
6

Ho bisogno di testare con driver chrome selenio in Java. Ma la finestra cromata non dovrebbe essere aperta. Assumi questo prodotto e nessuna finestra dovrebbe essere aperta.Test con un driver di selenio in Java senza aprire alcun browser

Ho anche guardato questo; Is it possible to hide the browser in Selenium RC? Ma nessuna soluzione per me. Il testing dovrebbe essere indipendente dal sistema operativo e ho provato HtmlUnitDriver per il test senza aprire alcuna finestra, ma ha qualche problema. Quando si trovano i componenti per id, potrebbe non trovare il componente per id. Alcuni server possono inviare l'id del componente in base al browser e non posso sapere quale ID dovrei usare per testare.

Per questo motivo sto cercando di utilizzare il driver chrome.

C'è un modo per utilizzare chromedriver senza aprire la finestra di Chrome o un altro modo di testare senza aprire alcuna finestra con Selenium in Java?

Grazie!

+0

Come credo selenio utilizza il motore DOM dei browser, non credo che nasconde la finestra di un driver specifico del browser è possibile. – Avery

+0

La risposta accettata nella domanda collegata elenca tutte le possibilità che conosco. Prova a dare a HtmlUnitDriver una possibilità in più - ma [assicurati di avere il supporto JavaScript abilitato] (http://code.google.com/p/selenium/wiki/HtmlUnitDriver).Se vuoi specificamente Chrome, devi andare con Saucelabs, Linux e driver senza testa, o la citata chiamata remota a un altro computer che esegue il test. –

risposta

6

andare con PhantomJS ma se li esegue in chromedriver è richiesto e si hanno le risorse, questo blog ha una buona ricetta su running headless selenium with chrome. che richiede di scaricare il seguente ...

  • VirtualBox
  • Vagrant
  • NodeJS

Se si prevede di implementare Jenkins o qualsiasi altro CI, in futuro, vi consiglio caldamente di andare con PhantomJS anche se.

0

Mi piace questo article.

Fondamentalmente è necessario aggiungere PhantomJS dipendenza nel pom (mi piace Maven per la gestione delle dipendenze):

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

ed eseguire codice

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(); 

Ha funzionato per me con le versioni:

  • PhantomJS 1.9.8
  • Driver PhantomJS 1.1.0
  • Selenio 2.44.0
0

In conducente web selenio c'è la modalità senza testa. quindi in modalità headless puoi eseguire l'automazione senza aprire il browser web. e inoltre è possibile distribuire l'applicazione in nessun sistema di 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

Sebbene questo snippet di codice possa risolvere la domanda, [compresa una spiegazione] (http://meta.stackexchange.com/questions/114762/explaining-entally- code-based-answers) aiuta davvero a migliorare la qualità del tuo inviare. Ricorda che stai rispondendo alla domanda per i lettori in futuro, e queste persone potrebbero non conoscere le ragioni del tuo suggerimento sul codice. –

Problemi correlati