python3+unittest+appium 做ui自动化截图对比之后返回对比图

from PIL import Image
from PIL import ImageChops

def compare_images(driver, path_one, lu):
	img_folder = os.fspath('D:\\screenshots') + '\\' + str(lu) + "\ERROR" + lu
	Screentime = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
	screen_save_path = img_folder + Screentime + '.png'
	driver.get_screenshot_as_file(screen_save_path)
	# myprint(screen_save_path)
	"""
	比较图片,如果有不同则生成展示不同的图片

	@参数一: path_one: 第一张图片的路径
	@参数二: path_two: 第二张图片的路径
	@参数三: diff_save_location: 不同图的保存路径
	"""
	# diff_save_location = 'D:\\screenshots\\mumu\\' + str(department) + Screentime + '.png'
	image_one = Image.open(path_one)
	image_two = Image.open(screen_save_path)
	try:
		diff = ImageChops.difference(image_one, image_two)
		if diff.getbbox() is None:
			# 图片间没有任何不同则删除图片
			os.remove(screen_save_path)
			return True
		else:
			myprint(diff)
			# diff.save(diff_save_location)
			# image_two.save(diff_save_location)
			return screen_save_path
	except ValueError as e:
		text = ("图片不一致")
		print("【{0}】{1}".format(e, text))

调用:

path_one = 'D:\\screenshots\\screenshot20190613103310.png'
# path_two = 'D:\\screenshots\\screenshot20190613103333.png'
# diff_save_location = 'D:\\screenshots\\mumu\\' + "\same" + '.png'
lu = 'search'
true = compare_images(driver, path_one, lu)
myprint(true)
assert (true == True), "图片不一致,详见图"


#===============================分界线============================================================


#上一个多文件夹的版本,

#把我的示例图放在一个文件夹,然后控制手机自动操作的时候 在当时截图(截下来放入b文件夹),然后用当时截图和示例图#作对比,比对完成后,发现不同,再把这个不同 放入第三个文件夹

from PIL import Image
from PIL import ImageChops

def compare_images(driver, path_one, lu, department):
   img_folder = os.fspath('D:\\screenshots') + '\\' + str(lu) + "\screenshot"
   Screentime = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
   screen_save_path = img_folder + Screentime + '.png'
   driver.get_screenshot_as_file(screen_save_path)
   # myprint(screen_save_path)
   """
   比较图片,如果有不同则生成展示不同的图片

   @参数一: path_one: 第一张图片的路径
   @参数二: path_two: 第二张图片的路径
   @参数三: diff_save_location: 不同图的保存路径
   """
   diff_save_location = 'D:\\screenshots\\mumu\\' + str(department) + Screentime + '.png'
   image_one = Image.open(path_one)
   image_two = Image.open(screen_save_path)
   try:
      diff = ImageChops.difference(image_one, image_two)
      if diff.getbbox() is None:
         # 图片间没有任何不同则直接退出
         return True
      else:
         myprint(diff)
         diff.save(diff_save_location)
         #image_two.save(diff_save_location)
         #myprint(diff_save_location)
         return False
   except ValueError as e:
      text = ("图片不一致")
      print("【{0}】{1}".format(e, text))

#然后,我得到了这样一张图;

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linmumum

吃饱睡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值