Voici l'affaire - la méthode getText () renvoie la promesse, c'est correct si vous l'utilisez à l'intérieur de expect () , mais lorsque j'essaie de retourner {{ X0}} valeur d'un élément en variable, il renvoie promesse. Voici le code:

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

Existe-t-il un moyen d'obtenir le texte et de l'affecter à une variable?

-2
Byte Surfer 8 août 2016 à 14:00

6 réponses

Meilleure réponse

La valeur d'une promesse ne peut être résolue que par une autre promesse, vous devriez probablement consulter cet article: Comment renvoyer la réponse d'un appel asynchrone?

Donc dans votre cas -

 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!
  });
2
Community 23 mai 2017 à 10:28

Vous pouvez utiliser wait et rendre votre bloc asynchrone.

// I'm using const x = await this.getElementText();

    public async getElementText(elem) {
         return elem.getText().then((text) => {
              return text;
          })
    }
0
Milton Mendieta 25 juil. 2018 à 21:47

Essaye celui-là:

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

-1
mmoonniikkaa 9 août 2016 à 11:54

Déclarez la variable 'chaîne' au niveau global et stockez-y la valeur du texte à l'intérieur (function () {})

Code snippet:
   var string; 
   mainPage.counter().getText().then((text) => {
      string=text;
    });
0
OptimWorks 8 août 2016 à 11:32

Tard dans la soirée mais j'ai eu un problème similaire en essayant d'obtenir le texte d'un élément et je l'ai résolu comme ceci:

var yourVar = '';
element.getText()
     .then(function(text){
         yourVar = text;
         return yourVar;
});
0
Joaquin Casco 31 janv. 2019 à 18:45

Que la variable soit une promesse , résolvez si nécessaire:

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

text.then(function (realTextValue) {
    console.log(realTextValue);
});
0
alecxe 8 août 2016 à 12:53