Protractor: como ler o valor do texto de um elemento

Criado em 3 out. 2013  ·  3Comentários  ·  Fonte: angular/protractor

Estou tentando ler o valor do texto do elemento de ligação. Usei a função getText () para ler o valor de texto dos elementos, mas não está funcionando. Existe alguma outra maneira de fazer isso

ptor = protractor.getInstance ();
ptor.get ('http://www.angularjs.org');

ptor.findElement(protractor.By.input("yourName")).sendKeys("Julie");

var saudação = ptor.findElement (protractor.By.binding ("{{seuNome}}!"));

console.log (greeting.getText ());

Comentários muito úteis

@vishalshivnath Verifique a documentação para obter informações sobre como o webdriver e o transferidor funcionam - as ações do transferidor retornam promessas, então você provavelmente é um objeto de promessa.

@tennisgent Há uma peculiaridade do webdriver estranho que getText () está sempre vazio para elementos <input> . Em vez disso, tente fazer userNameInput.getAttribute('value') .

Todos 3 comentários

Estou tendo o mesmo problema. Acabei de colocar o transferidor em funcionamento, mas não consigo obter dados de um elemento de entrada. Meu teste é:

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

mas o teste falha com:

1) Testes de login O login deve permitir a entrada de texto no campo userNameMensagem:Esperado que '' seja igual a 'xacttester'.

Enquanto observo o teste (diminuindo a velocidade com ptor.driver.sleep(2000) ), eu o observo inserir o texto no campo, mas quando ele chama getText() , ele retorna uma string vazia.

Alguém tem alguma ideia do que estou fazendo de errado?

@vishalshivnath Verifique a documentação para obter informações sobre como o webdriver e o transferidor funcionam - as ações do transferidor retornam promessas, então você provavelmente é um objeto de promessa.

@tennisgent Há uma peculiaridade do webdriver estranho que getText () está sempre vazio para elementos <input> . Em vez disso, tente fazer userNameInput.getAttribute('value') .

está certo usar $ em vez 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")
  });
Esta página foi útil?
0 / 5 - 0 avaliações