Я пытаюсь прочитать текстовое значение элемента привязки. Я использовал функцию 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 ());
У меня такая же проблема. Я только что запустил транспортир, но я не могу получить данные из элемента ввода. Мой тест:
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")
});
Самый полезный комментарий
@vishalshivnath Пожалуйста, ознакомьтесь с документацией, чтобы узнать, как работают webdriver и транспортир - действия транспортира возвращают обещания, так что вы, вероятно, являетесь объектом обещания.
@tennisgent Есть странная причуда веб-драйвера, заключающаяся в том, что getText () всегда пуст для элементов
<input>
. Попробуйте вместо этого сделатьuserNameInput.getAttribute('value')
.