Selen WebDriver js Funktion zur Verfügung gestellten Screenshot zu bekommen, müssen Sie einfach, es zu benutzen in After
, die @AfterClass
Tag in TestNG
ähnlich ist das After
Szenario nach jedem Szenario in Feature ausführt und prüfen Sie das Ergebnis das Szenario, es ist fehlgeschlagen es wird den Screenshot. Der Grund für das Scheitern kann alles, wie ein Fehler sein, oder DEFAULT_TIMEOUT
Sie müssen dies in Ihrem world.js hinzufügen
this.After(function (scenario) {
if (scenario.isFailed()) {
// take a screenshot
// driver.takeScreenshot() is defined in webDriver.js
return driver.takeScreenshot()
.then(function (screenShot) {
scenario.attach(new Buffer(screenShot, 'base64'), 'image/png');
return driver.close()
.then(function() {
return driver.quit();
});
});
}
else {
return driver.close()
.then(function() {
return driver.quit();
});
}
});
Ist es nur auf Timeout, die Sie den Screenshot wollen genommen werden, oder Wäre es besser, wenn bei einem Fehler ein Screenshot erstellt wird? –
Ich bevorzuge eine Zeitüberschreitung, weil die meisten Male die Fehler sind, weil "Warten auf Element" Anrufe Zeitüberschreitung sind. Ich möchte einen Screenshot dieser speziellen Fälle machen, damit ich sagen kann, warum das Element nie erscheint. – Buzzy