Protractor: cómo leer el valor de texto de un elemento

Creado en 3 oct. 2013  ·  3Comentarios  ·  Fuente: angular/protractor

Estoy tratando de leer el valor de texto del elemento vinculante. He usado la función getText () para leer el valor de texto de los elementos, pero no funciona. ¿Hay alguna otra forma de hacerlo?

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

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

var saludo = ptor.findElement (transportador.By.binding ("{{yourName}}!"));

console.log (greeting.getText ());

Comentario más útil

@vishalshivnath Consulte la documentación para obtener información sobre cómo funcionan el controlador web y el transportador: las acciones del transportador devuelven promesas, por lo que probablemente sea un objeto de promesa.

@tennisgent Hay una peculiaridad extraña en el controlador web de que getText () siempre está vacío para los elementos <input> . Intente hacer userNameInput.getAttribute('value') lugar.

Todos 3 comentarios

Tengo el mismo problema. Acabo de poner el transportador en funcionamiento, pero parece que no puedo obtener datos de un elemento de entrada. Mi prueba es:

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

pero la prueba falla con:

1) Las pruebas de inicio de sesión El inicio de sesión debe permitir la entrada de texto en el campo de nombre de usuarioMensaje:Se espera que '' sea igual a 'xacttester'.

Mientras veo la prueba (ralentizándola con ptor.driver.sleep(2000) ), veo cómo ingresa el texto en el campo, pero luego, cuando llama a getText() , devuelve una cadena vacía.

¿Alguien tiene alguna idea sobre lo que estoy haciendo mal?

@vishalshivnath Consulte la documentación para obtener información sobre cómo funcionan el controlador web y el transportador: las acciones del transportador devuelven promesas, por lo que probablemente sea un objeto de promesa.

@tennisgent Hay una peculiaridad extraña en el controlador web de que getText () siempre está vacío para los elementos <input> . Intente hacer userNameInput.getAttribute('value') lugar.

¿Está bien usar $ en lugar 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")
  });
¿Fue útil esta página
0 / 5 - 0 calificaciones