Как сравнить визуальные различия элемента на странице с помощью CodeceptJS? - PullRequest
0 голосов
/ 10 мая 2019

Я только начал использовать CodeceptJS, и у меня возникли некоторые проблемы с работой команды seeVisualDiffForElement.

Пока это мой тестовый код:

Feature('MyTest');

Scenario('Creating base images and comparing using the same command but ran twice',  (I) => {

    I.amOnPage('https://testsite-90d35.firebaseapp.com/');

    I.wait(1);

    I.saveScreenshot("Test1.png");

    I.wait(1);

    I.seeVisualDiff("Test1.png", {tolerance: 0, prepareBaseImage: true});
});

Scenario ('Comparing the blue button on the page', async (I) => {

    I.amOnPage('https://testsite-90d35.firebaseapp.com/testPage.html');

    I.wait(1);

    I.saveScreenshot("Test1.png");

    I.wait(1);

    I.seeVisualDiffForElement(".btnBlue","Test1.png", {tolerance: 0, prepareBaseImage: false});
});

Когда язапустить этот код, он открывает браузер Chromium (как я использую его с Puppeteer) и проходит через первый сценарий просто отлично.Делает скриншот и сохраняет его как базовое изображение.Затем я должен закрыть браузер, чтобы запустить следующий сценарий.После запуска второго сценария тест не пройден, но все еще создаются снимки экрана.Снимки экрана отличаются, как и должно быть, но скриншот diff не содержит каких-либо изменений.

В документации для CodeceptJS говорится, что "seeVisualDiffForElement работает только тогда, когда страница для baseImage открыта в браузере,так что веб-драйвер может получить координаты предоставленного селектора ".Мой браузер открыт, но не тот браузер, который создал базовое изображение (так как я должен закрыть его, чтобы запустить 2-й сценарий).Может быть, поэтому тест не пройден и не распознает никаких изменений?Или кто-то может увидеть что-то еще, что я делаю не так?

Я также пытался запустить тесты как один сценарий, но он выдает мне тот же результат.

1 Ответ

0 голосов
/ 13 мая 2019

Мне сообщили, что элементное тестирование работает только с WebDriver, но я использовал Puppeteer, отсюда и ошибки.

...