Ответ 1
Предполагая, что ваш элемент имеет идентификатор "foo", вы могли бы сделать, например
expect($('#foo').isDisplayed()).toBe(true); // or false to test that it hidden
или
expect(element(by.id('foo')).isDisplayed()).toBe(true);
Я использую программное обеспечение Protractor для тестов с конца до конца. Некоторые элементы устанавливаются с помощью ng-show.
Может ли кто-нибудь сказать мне, как я могу проверить, видимы ли эти элементы или нет с помощью Protractor?
Предполагая, что ваш элемент имеет идентификатор "foo", вы могли бы сделать, например
expect($('#foo').isDisplayed()).toBe(true); // or false to test that it hidden
или
expect(element(by.id('foo')).isDisplayed()).toBe(true);
Я обнаружил, что isDisplayed() возвращает обещание, а в. then, вам передается логическое значение. Так выглядит более как это:
$('#foo').isDisplayed().then(function(isDisplaying) {
expect(isDisplaying).toBe(true);
});
ожидаем, что знает, что имеет дело с обещанием, поэтому следующие работы.
expect($('#foo').isDisplayed()).toBe(true);
Предполагая, что у вас много элементов одним и тем же id/class, и вы хотите assert
подсчитать количество видимых элементов
var elements = element.all(by.id('foo'))
.filter(function(el){
return el.isDisplayed();
});
expect(elements.count()).toEqual(2);