In meinem Test-Code darf ich folgendes erreichen:Rückgabewert von verschachtelten Versprechen mit WebDriver
it('Updates label text', function(done) {
page.testLabelText();
assert.equal(page.testLabelText().pageLabel, page.testLabelText().iFrameLabel);
done();
});
In meiner Seite Objekt, hier ist testLabelText();
:
page.testLabelText = function() {
var pageLabel = function() {
return driver.findElement(By.css('#element')).getText().then(function(text) {
return text;
});
};
var iFrameLabel = function() {
return driver.findElement(By.css('#element')).getText().then(function(text) {
return text;
});
};
return {
pageLabel: pageLabel(),
iFrameLabel: iFrameLabel()
};
};
Aber das gibt 'Nicht definiert' wenn auf die Konsole ausgegeben ... ich einen Neuling in javascript bin so, obwohl ich dies in regelmäßiger Javascript geschaffen habe, alles, was ich versucht habe, hat mit Selen WebdriverJS Versprechen gescheitert ...
Wie genau unterscheiden sich die Funktionen 'pageLabel' und' iFrameLabel'? Ist "# element" ein Platzhalter? – gyre
pagelabel bezieht sich auf die Bezeichnung auf der Hauptseite, die sich von Benutzereingaben aktualisiert. Danach sollte der Iframe mit einem eigenen Label aktualisiert werden, das die Inhalte der Hauptseite widerspiegelt. #element war nur ein Beispiel, ist aber eigentlich der CSS-Selektor für jeden. – codemon