J'essaie de lire la valeur textuelle de l'élément de liaison. J'ai utilisé la fonction getText() pour lire la valeur textuelle des éléments mais cela ne fonctionne pas. Y a-t-il un autre moyen de le faire
ptor = rapporteur.getInstance();
ptor.get('http://www.angularjs.org');
ptor.findElement(protractor.By.input("yourName")).sendKeys("Julie");
var salutation = ptor.findElement(protractor.By.binding("{{votreNom}}!"));
console.log(salutation.getText());
J'ai le même problème. Je viens de faire fonctionner le rapporteur, mais je n'arrive pas à extraire des données d'un élément d'entrée. Mon test est :
it('should allow text entry into the userName field', function(){
userNameInput = ptor.findElement(protractor.By.input('user.userName'));
userNameInput.sendKeys(testUserName);
expect(userNameInput.getText()).toEqual(testUserName);
});
mais le test échoue avec :
1) Les tests de connexion La connexion doit permettre la saisie de texte dans le champ UserNameUn message:Attendu que '' soit égal à 'xacttester'.
Pendant que je regarde le test (en le ralentissant avec ptor.driver.sleep(2000)
), je le regarde entrer le texte dans le champ, mais quand il appelle getText()
, il renvoie une chaîne vide.
Quelqu'un a-t-il une idée de ce que je fais mal?
@vishalshivnath Veuillez consulter la documentation pour plus d'informations sur le fonctionnement du pilote Web et du rapporteur - les actions du rapporteur renvoient des promesses, vous êtes donc probablement un objet de promesse.
@tennisgent Il y a une bizarrerie du pilote Web que getText() est toujours vide pour les éléments <input>
. Essayez plutôt de faire userNameInput.getAttribute('value')
.
est-il possible d'utiliser $ au lieu de browser.findElement',
it('should return the same result as browser.findElement', function() {
browser.get('index.html');
// var e = element(by.id('new_todo'));
var e = $('#new-todo');
e.sendKeys("foo");
expect(e.getAttribute('value')).toEqual(
"foo")
});
Commentaire le plus utile
@vishalshivnath Veuillez consulter la documentation pour plus d'informations sur le fonctionnement du pilote Web et du rapporteur - les actions du rapporteur renvoient des promesses, vous êtes donc probablement un objet de promesse.
@tennisgent Il y a une bizarrerie du pilote Web que getText() est toujours vide pour les éléments
<input>
. Essayez plutôt de faireuserNameInput.getAttribute('value')
.