Транспортир.getAttribute('href') не работает
Цель: проверить, что значение 'href' первого элемента в моем 'div' равно 'myLink'.
HTML:
<div id="myId">
<a href="myLink"/>
</div>
Код транспортира:
var elems = element.all(by.id('myId'));
elems.first().getAttribute('href').then(function(attr) {
expect(attr).toEqual('myLink');
});
Сообщение об ошибке: "Ожидается, что null будет равен myLink".
Вопрос: что не так в этом коде?
2 ответа
Решение
Вы пытаетесь получить атрибут href из элемента div. Но у элемента div нет атрибута href, поэтому транспортиры дают вам нулевое значение в качестве вывода. Попробуйте приведенный ниже код.
var elems = element.all(by.css('#myId a'));
elems.first().getAttribute('href').then(function(attr) {
expect(attr).toEqual('myLink');
});
Добавить к существующему ответу. Вам не нужно выполнять обещание, чтобы оправдать ожидания. expect()
исправлено, чтобы понять обещания:
var elems = element.all(by.css('#myId a'));
expect(elems.first().getAttribute('href')).toEqual('myLink');