2015-07-14 12 views
6

Nach Protractor API documentation sollte es eine Möglichkeit geben, Screenshot der gesamten Seite zu machen, nicht nur des sichtbaren Rahmens. Eigentlich sollte es Standardverhalten sein.Wie man den Screenshot der ganzen Seite im Winkelmesser macht?

Wenn takeScreenshot() heißt wie

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

dann in Datei Option gespeichert 3. von Dokumentation - 'Visible Teil des aktuellen Rahmens'. Wie erzwinge ich den Webdriver, um den vollständigen Seiten-Screenshot zu erstellen?

+0

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

+0

Die Dokumentation sagt, dass Ptor jede Methode in dieser Reihenfolge versucht, die erste, die funktioniert, ist, was es tut. Es ist also nicht absichtlich nur geben Sie # 3; es ging darum, # 1 und # 2 zu machen, aber es konnte diese nicht tun. –

Antwort

0

Dies hat etwas mit dem jeweiligen Browser-Treiber-Server zu tun. . Wenn Sie Chrome verwenden, ist der Chrome-Server dafür verantwortlich, den Screenshot der gesamten Seite zu liefern.

Es hat nichts mit den WebDriver-Client-Bibliotheken oder dem Winkelmesser zu tun.

0

Dies ist ein Hack, aber Sie die Höhe des Browsers in Ihrem onPrepare einstellen 2000 Pixel oder ein anderer hoher Wert sein:

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

Ich verwende Jasmin-Reporter (ein Knoten Paket) Hier.

Schreiben Sie den Code in Ihre Conf-Datei.

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

Der obige Code nimmt Screenshots, wenn ein Fehler ist und dann speichert sie in einem Ordner mit dem Namen Screenshots mit Dateinamen wie: -

browser-errorItBlockName.png

Beispiel: -

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

screenshot Name: chrome-user signup.png

Verwandte Themen