Я использую pyautogui
для написания инструмента тестирования auto-gui для настольного приложения Debian9
, написанного Qt5.9.2
. Фон приложения был заполнен множеством образов PNG от qss
. Снимаю скриншот по pyautogui.screenshot()
и сравниваю пиксели по pyautogui.getpixel()
. Я обнаружил, что снимки, захваченный pyautogui.screenshot()
, может немного отличаться от 1 пиксель, например:
Different image at pos[528, 1228], pixel1[21, 21, 22], pixel2[21, 21, 24]
Different image at pos[528, 1414], pixel1[94, 94, 94], pixel2[93, 93, 93]
Different image at pos[529, 1414], pixel1[94, 94, 94], pixel2[93, 93, 93]
Different image at pos[530, 1414], pixel1[94, 94, 94], pixel2[93, 93, 93]
Different image at pos[531, 1414], pixel1[94, 94, 94], pixel2[93, 93, 93]
Different image at pos[812, 1225], pixel1[55, 55, 55], pixel2[54, 54, 54]
Different image at pos[812, 1228], pixel1[23, 23, 24], pixel2[23, 23, 25]
Different image at pos[812, 1229], pixel1[13, 13, 14], pixel2[12, 13, 14]
Different image at pos[812, 1230], pixel1[13, 13, 14], pixel2[13, 13, 15]
Я не знаю, что это используется Qt
или pyautogui
.
Обновлено Я нахожу тот же вопрос без убедительного ответа.
На Debian Linux
pyautogui
использует команду scrot
для создания снимков экрана.
pyautogui
- это набор оберток для различных библиотек и кода, специфичного для платформы. Вы можете исследовать больше, включив свой отладчик, чтобы увидеть, какие функцииpyautogui
использует для получения данных о пикселях и создания снимков экрана - возможно, эти базовые функции имеют известные причуды.