Имеется иконка с подсказкой со следующим шаблоном:
<md-icon class="message-icon" md-svg-icon="message">
<md-tooltip md-direction="top">
<div class="tooltip-row">
My tooltip text
</div>
</md-tooltip>
</md-icon>
Я хотел бы проверить с помощью Транспортир , что при наведении курсора мыши на значок отображается md-tooltip и текст соответствует My tooltip text
.
При просмотре страницы, которую я заметил, когда отображается всплывающая подсказка, в нижней части элемента <body>
добавляется следующий фрагмент HTML-кода:
<div class="md-panel-outer-wrapper">
<md-tooltip md-direction="top" class="ng-isolate-scope md-panel _md-panel-offscreen">
<div class="tooltip-row ng-binding">Some random note</div>
</md-tooltip>
</div>
В свете этого я написал следующий тест:
describe('message icon', () => {
it('should display a tooltip when the mouse is hovering the icon', () => {
const messageIcon = $('.message-icon');
browser.actions().mouseMove(messageIcon).perform().then(() => {
const tooltip = $('.md-panel-outer-wrapper');
browser
.wait(protractor.ExpectedConditions.visibilityOf(tooltip), 5000, 'Expected tooltip to appear')
.then(() => {
expect(tooltip.getText()).toBe('My tooltip text');
});
});
});
});
К сожалению, этот тест завершается неудачно, и каждый раз выполняется другое сообщение об ошибке:
- Сбой: элемент не найден с помощью локатора: By (селектор css, .md-panel-external-wrapper)
- Failed: Ожидается всплывающая подсказка. Тайм-аут ожидания через 5005 мс
Установив тайм-аут на 10 секунд, я также получаю дополнительную ошибку:
- Ошибка: время ожидания - асинхронный обратный вызов не был вызван в течение времени ожидания, указанного в jasmine.DEFAULT_TIMEOUT_INTERVAL.
Кто-нибудь знает, как правильно написать такой тест?
EDIT:
Добавление соответствующих devDependencies:
{
"jasmine-core": "~2.6.2",
"jasmine-reporters": "^2.3.0",
"jasmine-spec-reporter": "~4.1.0",
"protractor": "~5.3.0",
"protractor-console": "~3.0.0",
"protractor-jasmine2-screenshot-reporter": "~0.5.0",
}