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 ());
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")
});
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 fazeruserNameInput.getAttribute('value')
.