Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Задание прозрачного цвета в сравниваемом изображении в aShot

ashot
cross-browser
selenium
webdriver
Теги: #<Tag:0x00007f7b63ebf6c8> #<Tag:0x00007f7b63ebf588> #<Tag:0x00007f7b63ebf3a8> #<Tag:0x00007f7b63ebf240>

(Kosmos) #1

Дд.
Использую для авт. тестирование верстки инструмент Yandex AShot версии 1.5.2. Столкнулся с задачей задать прозрачный цвет в сравниваемом изображении (альфа-канал). На Гите приводят функцию:

ImageDiffer imageDifferWithIgnored = new ImageDiffer().withIgnoredColor(Color.MAGENTA);

Когда же в коде пытаюсь вызвать эту функцию - её просто нет. Можете подсказать, как исправить? Может есть её аналог.


(Pavel Ponomaryov) #2

лучше задать вопрос на git https://github.com/yandex-qatools/ashot/issues , больше шанс получить ответ от самих разработчиков.


(Kosmos) #3

Как временное решение зашел на Git-ветку проекта, создал свой класс унаследованный от ImageDiffer и внутри добавил и переопределил недостающие функции.
В самом же тесте использовал уже созданный класс.

public class ImageDiffer2 extends ImageDiffer {
    private int colorDistortion = DEFAULT_COLOR_DISTORTION;
    private Color ignoredColor = null;

   ...

   public ImageDiffer withIgnoredColor(final Color ignoreColor) {
        this.ignoredColor = ignoreColor;
        return this;
    }

   ...

    private boolean hasDiffInChannel(Screenshot expected, Screenshot actual, int i, int j) {
        if(ignoredColor != null && rgbCompare(expected.getImage().getRGB(i, j), ignoredColor.getRGB(), 0)) {
            return false;
        }

        return !rgbCompare(expected.getImage().getRGB(i, j), actual.getImage().getRGB(i, j), colorDistortion);
    }

    ...

}