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

Как проверить, существует ли элемент с идентификатором с Jasmine?

Как использовать жасмин, чтобы просто проверить, существует ли элемент на странице по id?

Я перешел matchers, toExist(), похоже, не решил эту проблему.

Это то, что я пробовал:

1. expect(by.id('my-id')).not.toExist();

2. expect($(document)).not.toContain($(#my-id));

Вы можете помочь?

4b9b3361

Ответ 1

Используя Protractor v1.x (без angularjs-jasmine-matchers):

expect(element(by.id('my-id')).isPresent()).toBe(true);

Ответ 2

Чтобы использовать angularjs-jasmine-matchers, вы можете написать тест следующим образом:

expect('#my-id').not.toExist();

Ответ 3

У меня было требование для директивы в ANGULAR JS, где она добавляет div или удаляет div на основе некоторого условия.

В итоге я попробовал что-то вроде этого, чтобы проверить то же самое:

document[0].body.innerHTML (результатом будет строка)

В Жасмин (юнит тест)

expect(document[0].body.innerHTML).toContain("actionSheet-2");

"actionSheet-2" - это идентификатор div, который я добавляю/удаляю. Так как это строка, вы можете искать что угодно.

Я знаю, что это хакерский способ, но он работает :)

ПН: Я использовал $ document service angular в директиве.