selenium学习 -16对比两个截图的相似度
Posted 一路の向北
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium学习 -16对比两个截图的相似度相关的知识,希望对你有一定的参考价值。
前面有说过在测试过程中可以截图,截图后,我们可以通过对比截图的相似度,来进行断言
本文介绍两个可以对比截图相似度的方法
方法一:
from PIL import Image import math import operator from functools import reduce def image_contrast(img1, img2): image1 = Image.open(img1) image2 = Image.open(img2) h1 = image1.histogram() h2 = image2.histogram() result = math.sqrt(reduce(operator.add, list(map(lambda a, b: (a - b) ** 2, h1, h2))) / len(h1)) return result if __name__ == \'__main__\': img1 = "./1.png" # 指定图片路径 img2 = "./2.png" result = image_contrast(img1, img2) print(result)
如果两个图完全一致,则打印出来的结果为 0.0
如果两张图不一致,那么结果就会很大
方法二:
from PIL import Image from PIL import ImageChops
# path_one 图片一的路径
# path_two 图片二的路径
# diff_save_location 不同之处的图片的存储路径 def compare_images(path_one, path_two, diff_save_location): image_one = Image.open(path_one) image_two = Image.open(path_two) diff = ImageChops.difference(image_one, image_two) if diff.getbbox() is None: # 图片间没有任何不同则直接退出 print("我们是一模一样的图片") else: diff.save(diff_save_location) if __name__ == \'__main__\': compare_images(\'3.png\', \'4.png\', \'不同之处.png\')
这个方法会对比两张图片,如果相同就直接退出。如果不同,则生成第三张图片,标识出两张图片的不同之处
其他app做了马赛克处理,最下方的两个app是两张图的不同之处,第三张图片就明确的标识了出来
以上是关于selenium学习 -16对比两个截图的相似度的主要内容,如果未能解决你的问题,请参考以下文章