2015-07-14 2 views
6

Seguendo Protractor API documentation dovrebbe esserci un modo per fare screenshot di tutta la pagina, non solo la cornice visibile. In effetti dovrebbe essere un comportamento predefinito.Come prendere screenshot di tutta la pagina in Goniometro?

Quando takeScreenshot() è chiamato come

browser.takeScreenshot().then(function (png) { 
    // writing down image 
}); 

Poi nel file viene opzione 3. dalla documentazione salvato - 'porzione visibile di frame corrente'. Come forzare il webdriver a prendere screenshot della pagina intera?

+0

http://stackoverflow.com/a/31840790/2517622 – drets

+0

La documentazione dice che Ptor prova ogni metodo in quell'ordine, il primo che funziona è quello che fa. Quindi non ti sta deliberatamente dando solo # 3; ha considerato di fare # 1 e # 2 ma non poteva farlo. –

risposta

0

Questo è qualcosa a che fare con il rispettivo server driver del browser. ad esempio se si utilizza chrome, il server chromedriver è responsabile di consegnare lo screenshot dell'intera pagina.

Non ha nulla a che fare con le librerie o il goniometro del client WebDriver.

0

Si tratta di un hack, ma è possibile impostare l'altezza del browser nel vostro onPrepare essere 2000 pixel o qualche altro valore elevato:

browser.driver.manage().window().setSize(320, 2000); 
0

sto usando gelsomino-reporter (un pacchetto nodo) Qui.

Scrivi il codice nel tuo file conf.

onPrepare: function() { 
jasmine.getEnv().addReporter({ 
      specDone: function (result) { 
       if (result.status === 'failed') { 
        browser.getCapabilities().then(function (caps) { 
         var browserName = caps.get('browserName'); 
         browser.takeScreenshot().then(function (png) { 
          var stream = fs.createWriteStream('screenshots/' + browserName + '-' + result.fullName + '.png'); 
          stream.write(new Buffer(png, 'base64')); 
          stream.end(); 
         }); 
        }); 
       } 
      } 
     }); 
} 

Il codice di cui sopra prende screenshot quando c'è guasto e quindi memorizza le immagini in una cartella denominata con il nome del file come: -

browsername-errorItBlockName.png

esempio: -

it('user signup', function() { 
// error here 
} 

screenshot Nome: chrome-user signup.png