Транспортир.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');
Другие вопросы по тегам