"Click" MouseEvent для некоторых элементов, не отображаемых на скриншотах
Я пытаюсь смоделировать нажатие элементов CSS на моей странице и автоматически делать скриншоты окна на каждом этапе для целей тестирования. Я использую backstopJS в качестве фреймворка CSS для тестирования / скриншотов. Кажется, все работает нормально для этого первого элемента. Триггер ng запускается, что расширяет меню (и видно на моих скриншотах) и печатает консольное сообщение:
<li class="hidden-toggle" ng-click="hiddentoggle = !hiddentoggle"
ng-init="hiddentoggle=false" onclick="console.log('Toggled hidden');"> ... </li>
Но когда я пытаюсь сделать скриншот окна предупреждения при нажатии на тот же элемент, он не появляется:
<li class="hidden-toggle" ng-click="hiddentoggle = !hiddentoggle"
ng-init="hiddentoggle=false" onclick="alert('Toggled hidden');"> ... </li>
Моя функция для симуляции клика:
Array.prototype.forEach.call(document.querySelectorAll(o), function(s, j) {
var ev = document.createEvent("MouseEvent");
ev.initMouseEvent(
"click",
true, false,
window, null,
0, 0, 0, 0,
false, false, false, false,
0, null
);
s.dispatchEvent(ev);
Таким образом, onClicks запускаются, но я не вижу окно предупреждения на снимках экрана. Это также верно для элементов, которые пытаются отобразить модалы. Я добавил onClicks только через некоторое время, чтобы проверить, действительно ли щелкали элементы, поэтому я сомневаюсь, что они каким-либо образом мешают.
Есть идеи, что может быть причиной такого поведения?
1 ответ
Если onClicks активируются, у вас может возникнуть проблема с запуском BackstopJS, чтобы сделать снимок экрана в нужное время. Вы можете проверить эту статью (ближе к концу), которая охватывает запуск скриншотов BackstopJS в Angular.
http://davidwalsh.name/visual-regression-testing-angular-applications
Надеюсь это поможет.