"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

Надеюсь это поможет.

Другие вопросы по тегам