Ich sehe, dass ich verwenden kann. Gibt es eine protractor.promise.when()
? Und wo kann ich mehr darüber erfahren und wie man es benutzt?Gibt es eine protractor.promise.when() Methode?
Mein Problem ist, ich muss alle getText()
Versprechungen auflösen, bestimmen, welche fehlschlagen und bieten Leerzeichen für diejenigen, die fehlgeschlagen sind.
Zum Beispiel:
function getValues() {
let pFirstName = $('#firstname').getText();
let pLastName = $('#lastname').getText();
let pSSN = $('#ssn').getText();
return protractor.promise.when([pFirstName, pLastName, pSSN])
.then(function(values) {
return {
"first": values[0],
"last": values[1],
"ssn": values[2] // This value may or may not be on the DOM, how do I check it and provide an alternate value?
};
});
}
UPDATE:
Als ich meine Forschung bin weiterhin, ich sehe dies eher ein WebDriver Problem. Und vielleicht muss ich Bluebird reinziehen. Ich bin mir nicht sicher.
Um die Frage unten zu beantworten, "was meinst du mit welchen scheitern?" Angenommen, der Elementfinder $('#ssn')
findet kein Element, das mit #ssn
übereinstimmt. Die Methode getText()
würde das Versprechen zurückweisen und einen Fehler Element nicht gefunden liefern. Und so würde ich die beiden folgenden Situationen:
<span id="firstname">Joe</span>
<span id="lastname">Smith</span>
<span id="ssn">123-45-6789</span>
getValues().then(res => console.log(res));
zurückkehren würde {"first": "Joe","last":"Smith","ssn":"123-45-6789"}
In der folgenden Situation, wo ein Benutzer nicht soll das SSN, um zu sehen, und Winkel doesn ‚t sogar das Element erstellen, können wir:
<span id="firstname">Joe</span>
<span id="lastname">Smith</span>
Ich würde erwarten, dass die Rückkehr sein sollte: {"first":"Joe","last":"Smith"}
oder {"first":"Joe","last":"Smith","ssn":""}
was meinst du mit 'welche scheitern '? –