Protractor: как читать текстовое значение элемента

Созданный на 3 окт. 2013  ·  3Комментарии  ·  Источник: angular/protractor

Я пытаюсь прочитать текстовое значение элемента привязки. Я использовал функцию getText () для чтения текстового значения элементов, но она не работает. Есть ли другой способ сделать это?

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

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

var приветствие = ptor.findElement (protractor.By.binding ("{{yourName}}!"));

console.log (приветствие.getText ());

Самый полезный комментарий

@vishalshivnath Пожалуйста, ознакомьтесь с документацией, чтобы узнать, как работают webdriver и транспортир - действия транспортира возвращают обещания, так что вы, вероятно, являетесь объектом обещания.

@tennisgent Есть странная причуда веб-драйвера, заключающаяся в том, что getText () всегда пуст для элементов <input> . Попробуйте вместо этого сделать userNameInput.getAttribute('value') .

Все 3 Комментарий

У меня такая же проблема. Я только что запустил транспортир, но я не могу получить данные из элемента ввода. Мой тест:

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

но тест не проходит:

1) Входные тесты Вход должен разрешать ввод текста в поле userName.Сообщение:Ожидается, что "" будет равно "xacttester".

Наблюдая за тестом (замедляя его с помощью ptor.driver.sleep(2000) ), я смотрю, как он вводит текст в поле, но затем, когда он вызывает getText() , он возвращает пустую строку.

У кого-нибудь есть идеи о том, что я делаю неправильно?

@vishalshivnath Пожалуйста, ознакомьтесь с документацией, чтобы узнать, как работают webdriver и транспортир - действия транспортира возвращают обещания, так что вы, вероятно, являетесь объектом обещания.

@tennisgent Есть странная причуда веб-драйвера, заключающаяся в том, что getText () всегда пуст для элементов <input> . Попробуйте вместо этого сделать userNameInput.getAttribute('value') .

можно ли использовать $ вместо 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")
  });
Была ли эта страница полезной?
0 / 5 - 0 рейтинги