2016-08-08 10 views
-2

Hier ist der Deal Text von einem Elemente in variable zurückzukehren - getText() Methode Renditen versprechen, es in dem Fall in Ordnung ist, wenn Sie es innerhalb von erwarten() verwenden, aber wenn ich versuche, Um string Wert eines Elements in Variable zurückzugeben, gibt es Versprechen zurück. Hier ist der Code:Wie in Protractor

var text = mainPage.counter().getText().then((text) => { 
     return text; 
}) 

Gibt es eine Möglichkeit, den Text zu erhalten und es einer Variablen zuzuweisen?

Antwort

0

ein Wert Versprechen nur durch ein anderes Versprechen gelöst werden könnten, sollten Sie wahrscheinlich dies überprüfen Beitrag: How do I return the response from an asynchronous call?

so in Ihrem Fall -

var data = mainPage.counter().getText().then((text) => { 
    return text; 
    }); 
// at this point data is still a managed promise! 
data.then((text) => { 
    console.log(text); // your text would be printed! 
    }); 
+0

Code-Duplikat für die Verarbeitung von Versprechen. besser folgen: var data = mainPage.counter(). getText(); data.then ((text) => { console.log (Text); // Ihr Text würde gedruckt werden! }); –

+0

ja das könnte auch gemacht werden, wollte aber nur beim qn bleiben! –

+0

Danke für die Antwort, das funktioniert. –

0

Deklarieren Variable ‚string‘ auf globaler Ebene und speichern Textwert, um es innen dann (function() {})

Code snippet: 
    var string; 
    mainPage.counter().getText().then((text) => { 
     string=text; 
    }); 
+0

Könnten Sie bitte erklären, warum diese Variable sollte nur im globalen Bereich deklariert werden? –

+0

Das wird nicht funktionieren, String wird in diesem Fall nicht definiert! Sie können es überprüfen. –

+0

@ByteSurfer sollte der Code, den Sie geschrieben haben, funktionieren. aber du hast gesagt, es funktioniert nicht. Also schlug ich vor, eine globale Variable zu deklarieren und diesen Text für weitere Zwecke zu speichern. –

0

die Variable ein Versprechen sein Let beheben, bei Bedarf:

var text = mainPage.counter().getText(); 
// some other code 

text.then(function (realTextValue) { 
    console.log(realTextValue); 
}); 
-1

Versuchen Sie dieses:

var text = function(){ return mainPage.counter().getText(); };

+0

Es gibt ein Versprechen zurück, so dass dies nicht funktioniert. – Sam