Rapporteur: obtenir la valeur de la liaison avec xpath
Si j'ai le html comme ceci:
<body>
<div id="menu">
<div id="button"> {{ someBinding }} </div>
</div>
</body>
et j'ai une déclaration à l'rapporteur, comme ceci:
ptor.findElement(By.xpath("/body/div[@id='menu']/div[@id='button']"));
Que serais-je utiliser pour obtenir la valeur de {{someBinding}}? Il semble que le rapporteur tente de comparer la valeur avec la liaison de nom. Donc, si j'attends {{someBinding}} pour dire "Bonjour Monde", il lance un message d'erreur indiquant que
Expected: {{someBinding}} to equal 'Hello World'
OriginalL'auteur xv47 | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
Je pense que vous devez appeler .getText() sur l'élément.
el = ptor.findElement(By.xpath("/body/div[@id='menu']/div[@id='button']"))
donc l'intégralité de votre déclaration serait:
expect(el.getText()).toBe('Hello World');
Je voudrais également envisager d'utiliser une autre localisation, tels que le CSS localisateur si vous utilisez des id, ou jeter un oeil à la liaison de localisation.
https://github.com/angular/protractor/blob/master/docs/api.md#webdriverwebelementprototypegettext
https://github.com/angular/protractor/blob/master/docs/api.md#protractorbyprototypebinding
element.getText()
déclenche une erreur donc j'ai supprimer le getText() la méthode et il fonctionne, mais j'obtiens le même message d'erreur comme je l'ai mentionné ci-dessus. Pour mon projet actuel, le xpath méthode est la seule localisateur avec succès récupère mon message.J'ai mis à jour ma réponse à essayer d'être plus clair, vous devez appeler .getText() sur le résultat de la findElement déclaration.
OriginalL'auteur rjferguson21
J'ai trouvé la solution si quelqu'un d'autre est à la recherche pour elle. L'ajout de @rjferguson21 's réponse, le fait de s'attendre de la ligne devrait ressembler à ceci:
Je pense que c'était une mise à jour du Rapporteur.
el.evaluate("someBinding").then(function(bindingValue){ expect(bindingValue).toBe("Hello World)});
OriginalL'auteur xv47
Notez que vous n'avez pas à utiliser xpath sélection pour cette. Essayez la liaison locator:
OriginalL'auteur fracz