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

Транспортир, с isDisplayed() Я получаю NoSuchElementError: ни один элемент не найден с использованием локатора

В protractor 2.0 я проверяю expect(), если отображается один элемент. Я ожидаю, что ложь, но странно, что я получаю следующую ошибку:

NoSuchElementError: элемент не найден с использованием локатора: By.id( "userForm" )

Мой код:

describe('closeModal', function() {
    it('should close the alert that appears after registration.', function(){
        element(by.id('closeAlertModalButton')).click();
        expect(element(by.id('userForm')).isDisplayed()).toBeFalsy();
    });
});

Я понимаю, что получаю эту ошибку, потому что элемент больше не на странице (это то, что я хочу подтвердить), но не должен ли я получить ложь, а не ошибку?

4b9b3361

Ответ 1

isDisplayed() будет проверять, является ли элемент видимым или нет, но вам нужно проверить, присутствует ли элемент в DOM или нет, используйте isElementPresent() или isPresent():

expect(browser.isElementPresent(element(by.id('userForm')))).toBe(false);
expect(element(by.id('userForm')).isPresent()).toBe(false);

См. также:

Ответ 2

Эта ошибка является частью поведения WebDriver. Для таких случаев вам лучше использовать isPresent или isElementPresent