UI自动化测试python+chrome8|获取错误并自动截图
·
自动化测试加入allure报告之后,可读性好了很多,但是脚本报错显示在报告上仍是一长串的英文,不方便阅读,同时对于无代码基础的测试小伙伴而言非常的不友好,看不懂错误在哪里
今天我们一起优化脚本,加入脚本抛出异常并截取错误图片的操作,以便测试人员快速定位问题,避免错误范围扩大
代码如下
driver.get_screenshot_as_file(pic_path)
pic_path:截图存放路径
- pic_path:截图存放路径,建议写成:“项目路径+文件” 形式,使代码具有较高兼容性和可移植性
- os.path.dirname(file) 是python中os模块的一种方法,含义是此脚本目前所在路径。当脚本在不同位置不同设备,获取的路径会变成对应设备对应脚本的实时路径
注意:截图方法仅适用于脚本可正常运行的前提下,对于脚本异常中断是无法提供截图的,所以 get_screenshot_as_file()方法常和 try-except 一起使用,达到无论什么情况都可对异常情况进行截图
实战:
我们将代码中元素定位修改成错误的定位(由 upload 改成 upload1);新建screenshort文件夹,如图

将截图方法写在 try-except 中,如果代码出现错误,会截图存入 screenshort 文件夹中,且按照“年月日时分秒.png”的格式命名,方便定位出错时间,同时避免截图因重名问题被替换,导致混乱
完整代码如下:
# 打开浏览器,上传图片
import os
import time
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
# 启动浏览器驱动
driver = webdriver.Chrome()
sleep(1)
driver.maximize_window()
sleep(1)
# 输入地址
driver.get("https://www.arkthinker.com/zh/image-upscaler/")
sleep(3)
# 图片路径
current_time = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime(time.time()))
pic_path = os.path.dirname(__file__) + os.sep + "111.jpg"
# 截图路径
scr_path = os.path.dirname(__file__) + os.sep + "screenshort" + os.sep + current_time + ".png"
# 上传图片
try:
driver.find_element(By.ID, ("upload1")).send_keys(pic_path)
except Exception as e:
print("错误信息为:", e)
driver.get_screenshot_as_file(scr_path)
raise
sleep(12)
# 关闭浏览器
driver.quit()
视频演示
---THE END ---
更多内容请关注同名微信公众号
更多推荐



所有评论(0)