Подтвердить что ты не робот

Использовать элемент css для проверки наличия элемента в Protractor

В сквозном тесте транспортира я хочу проверить, существует ли элемент, используя элемент (by.css(...)), мой код:

var myElement = element(by.css('.elementClass'));
expect(myElement).toBeUndefined;

Этот тест не проходит, он говорит:

    Expected { locator_ : { using : 'css selector', value : 'div[ng-switch-
    when="resultNav"]' }, parentElementFinder_ : null, opt_actionResult_ :
    undefined, opt_index_ : undefined, click : Function, sendKeys : Function, 
getTagName : Function, getCssValue : Function, getAttribute : Function, getText
 : Function, getSize : Function, getLocation : Function, isEnabled : Function, 
isSelected : Function, submit : Function, clear : Function, isDisplayed : 
Function, getOuterHtml : Function, getInnerHtml : Function, toWireValue : 
Function } to be undefined.

После этого я попытался использовать обещание:

element(by.css('.elementClass')).then( functtion(data) {
    expect(data.getText()).toBeUndefined();
});

Это приводит к ошибке:

Ошибка: не найден элемент с использованием локатора By.CssSelector(...)

Да, я знаю, что элемент не будет найден, но как я могу создать работающий тест, используя элемент (by.css(...))?

Кто-нибудь знает, как этого добиться? или element(by.css()) не метод для использования здесь?

4b9b3361

Ответ 1

Вы можете проверить, присутствует ли element с isPresent. Здесь представлены документы транспортира для функции isPresent.

Таким образом, ваш код будет выглядеть примерно так:

var myElement = element(by.css('.elementClass'));
expect(myElement.isPresent()).toBeFalsy();

Ответ 2

Вам нужно проверить, нет ли элемента:

expect(element(by.css('.elementClass')).isPresent()).toBe(false);