Protractor: comment lire la valeur textuelle d'un élément

Créé le 3 oct. 2013  ·  3Commentaires  ·  Source: angular/protractor

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());

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 faire userNameInput.getAttribute('value') .

Tous les 3 commentaires

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")
  });
Cette page vous a été utile?
0 / 5 - 0 notes