2015-03-25 8 views
15

Nuovo utente qui.Che cos'è un buon browser headless da eseguire con il goniometro?

Dopo ore di costruzione dei miei test di fumo e di regressione, ho scoperto, dopo aver letto molti casi online, che i phantomjs sono noti per essere un problema con il goniometro. Jenkins ha eseguito phantomjs per tutti i compiti che è stato dato finora.

Hanno bisogno di questi test per eseguire come parte di ci che non ha un sistema di finestre installato.

Quindi mi piacerebbe se ci fosse una raccomandazione per il browser completamente headless o un chrome senza headless (che sarebbe più vantaggioso) e un passo dopo passo per configurarlo. Ho già un file conf.js e un file e2e.conf.js. Il mio codice funziona perfettamente con il chrome.

Sono su un iMac e sul selenio, credo.

Modifica: Problema = il goniometro non funziona con phantomjs. Cosa ho fatto = utilizzare diversi elementi web e google se qualcuno ha affrontato una situazione simile. Anche googlato per i browser headless che hanno funzionato per il goniometro, incapace di trovare una soluzione adatta.

+3

Le domande che ci chiedono di raccomandare o trovare un libro, uno strumento, una libreria di software, un'esercitazione o altre risorse fuori sede sono off-topic per Stack Overflow in quanto tendono ad attirare risposte e spam. Hai un problema specifico con la tua configurazione attuale? Se è così, descrivi il problema e cosa è stato fatto finora per risolverlo. – honk

risposta

8

La soluzione migliore è continuare ue con Chrome. Con un po 'di lavoro è possibile farlo funzionare tramite un CI e in modo headless - lo facciamo usando i server Jenkins e Docker Ubuntu che sono senza testa.

È necessario configurare Chrome per eseguire headless utilizzando XVFB. È possibile iniziare seguendo l'esempio qui https://gist.github.com/addyosmani/5336747

Si dichiara di essere su un Mac in modo da poter eseguire i test senza testa tramite Docker sulla macchina o è possibile impostare una seconda configurazione per i test CI.

Un'altra risorsa http://tobyho.com/2015/01/09/headless-browser-testing-xvfb/

+2

Ho creato un'immagine Docker https://hub.docker.com/r/webnicer/protractor-headless/ che elimina tutte le difficoltà di installazione e funziona anche con xvfb. Spero che sarà utile. Il razionale è descritto sul mio post sul blog: http://float-middle.com/protractor-and-headless-chrome-on-docker-with-video-tutorial/ –

1

È possibile eseguire i test Goniometro contro CodeShip o Drone.io, both di which offerta Chrome e/o Firefox senza testa in esecuzione gratuitamente. No davvero ...

9

Se qualcuno ha raggiunto qui - le risposte sono obsolete. Chromium (alla prossima versione) ora supporta la modalità senza testa. non c'è bisogno di lavorare sodo

Si può leggere di più qui:

https://developers.google.com/web/updates/2017/04/headless-chrome

Ecco un esempio da linea di comando

chrome \ 
--headless \     # Runs Chrome in headless mode. 
--disable-gpu \    # Temporarily needed for now. 
--remote-debugging-port=9222 \ 
https://www.chromestatus.com # URL to open. Defaults to about:blank. 

E si può semplicemente attivare goniometro con funzionalità di Chrome:

Activating chrome language flags when activating from protractor (selenium)

Ecco il configuraiton sto usando

capabilities: { 
    'browserName': browserName, 
    chromeOptions: { 
     binary: '/Users/guymograbi/Downloads/chrome-mac/Chromium.app/Contents/MacOS/Chromium', 
     args: ['--headless','--disable-gpu'] 
    } 
    }, 

Update - nuove versioni di Chrome non richiede binary proprietà

Nei miei ambienti ho trovato che posso rimuovere la proprietà binary come nuova versione di Chrome è disponibile su rami stabili

La mia configurazione è goniometro

capabilities: { 
    'browserName': 'chrome', 
    chromeOptions: { 
     args: [ '--headless', '--disable-gpu', '--no-sandbox', '--window-size=1920x1200' ] 
    }, 

    }, 

E funziona senza problemi per w Ehi ora. altamente raccomandato.

Update - come fare questo nel karma è super facile

usare Chrome senza testa nel karma è super facile:

browsers: 'ChromeHeadless' 

dovrebbe funzionare con il caricatore di cromo e tutto. more info

0

Se hai Chrome 59+ installato, avviare Chrome con il flag seguente:

--headless 

favore, fatemi sapere se avete bisogno di più aiuto, scriverà il config per voi :) godere