Ссылка на тулзу https://github.com/yandex-qatools/ashot
При создании скриншота с результатом сравнения, на нем отмечены “красным” те элементы, что должны были в теории игнорироваться. Что я делаю не так?
Код:
//Создаем Эталонный скриншот
Screenshot ExpectedDir = new AShot().shootingStrategy(ShootingStrategies.viewportPasting(100)).takeScreenshot(driver);
ImageIO.write(ExpectedDir.getImage(), "png", new File("Screenshot\\Expected.png"));
//Создаем фактический скриншот
Screenshot actualScreenshot = new AShot()
.shootingStrategy(ShootingStrategies.viewportPasting(100))
.addIgnoredElement(By.cssSelector(".banner.g-zindex-top[data-banner-id='fp_new_top']"))
.addIgnoredElement(By.cssSelector(".banner.g-banner__newsfeed[data-banner-id='firstpage_left2']"))
.addIgnoredElement(By.cssSelector(".banner.g-banner__padding[data-banner-id='firstpage_graph2_new']"))
.takeScreenshot(driver);
ImageIO.write(actualScreenshot.getImage(), "png", new File("Screenshot\\Actual.png"));
ExpectedDir.setIgnoredAreas(actualScreenshot.getIgnoredAreas());
ImageDiff diff = new ImageDiffer()
.makeDiff(ExpectedDir, actualScreenshot);
diff.getDiffSize();
File diffFile = new File("Screenshot\\markedImages.png");
ImageIO.write(diff.getMarkedImage(), "png", diffFile);
проверяли что элементы находятся по тем локаторам что вы используете ?
даже если да попробуйте локаторы .banner.g-banner__newsfeed[data-banner-id='firstpage_left2'] упростить
Попробуйте shootingStrategy поставить после добавления игнорируемых элементов.
А лучше всего, если необходимо игнорировать несколько элементов, я сделал бы так:
Благодаря вам разобрался. Проблема была в том что у меня шапка прикреплена к верху экрана и не пропадает при скроллинге страницы. а висит сверху. я изначально думал ну и пусть. буду так делать скриншоты. но нет… это оказалось критичным. из-за этого не игнорируются динамические элементы в самой шапке. …ну… или как то так… спасибо =)
У меня есть метод Screenshot, в котором я делаю скриншоты, сравниваю их, указываю элемент на который делать скрин)Далле вызываю данный метод в разных тестах.
Столкнулся с проблемой, что в некоторых тестах надо игнорировать некоторые элементы(разное количество), подскажите как прикрутить setIgnoredElements?