admin管理员组文章数量:1559100
目录
前言
测试代码
get_screenshot_as_file():
save_screenshot():
pillow包:
注意
前言
在进行无人值守的ui自动化测试,如果页面操作出现了问题,可以用截图的方式保留问题现场,同时佐证自己发现的问题。下面将介绍3种截图的方式:driver.get_screenshot_as_file()、driver.save_screenshot()和pillow包,前两种是selenium自带的api,最后一个需要单独安装第3方的包
测试代码
get_screenshot_as_file():
#encoding=utf-8
import os
import time
from datetime import datetime
from selenium import webdriver
import traceback
def currentdate():
'''生成当前日期字符串'''
date = time.localtime()
return '-'.join([str(date.tm_year), str(date.tm_mon),str(date.tm_mday)])
def currenttime():
'''生成当前时间字符串'''
date = time.localtime()
return '-'.join([str(date.tm_hour), str(date.tm_min),str(date.tm_sec)])
def createdir():
'''创建当前日期和当前时间目录'''
path = os.path.dirname(os.path.abspath(__file__))
datedir = os.path.join(path,currentdate())
#如果当前日期目录不存的话就创建
if not os.path.exists(datedir):
os.mkdir(datedir)
timedir= os.path.join(datedir,currenttime())
#如果当前时间目录不存的话就创建
if not os.path.exists(timedir):
os.mkdir(timedir)
return timedir
def takescreenshot(driver,savepath,picturename):
picturepath = os.path.join(savepath, picturename '.png')
try:
driver.get_screenshot_as_file(picturepath)
except exception as e:
print(traceback.print_exc())
# 获取浏览器驱动实例
driver = webdriver.chrome(executable_path='f:\\chromedriver')
#访问搜狗j9九游会老哥俱乐部交流区首页
driver.get('http://www.sogou')
time.sleep(3)
#搜狗j9九游会老哥俱乐部交流区首页截图
takescreenshot(driver,createdir(),'sogou')
time.sleep(1)
#退出浏览器
driver.quit()
执行完成后在当前目录下可以看到如下结果:
save_screenshot():
此方法和上一种是一样的,只需要对takescreenshot函数作如下修改即可:
def takescreenshot(driver,savepath,picturename):
picturepath = os.path.join(savepath, picturename '.png')
try:
#和get_screenshot_as_file方法类似
driver.save_screenshot(picturepath)
except exception as e:
print(traceback.print_exc())
执行完成后在当前目录下可以看到如下结果:
pillow包:
需要先在命令行下安装pillow包,命令如下:pip install pillow,如果电脑中有多个python版本,而且想指定版本安装的话参考之前的文章指定python版本pip安装
#encoding=utf-8
import os
import time
from datetime import datetime
from selenium import webdriver
import traceback
def currentdate():
'''生成当前日期字符串'''
date = time.localtime()
return '-'.join([str(date.tm_year), str(date.tm_mon),str(date.tm_mday)])
def currenttime():
'''生成当前时间字符串'''
date = time.localtime()
return '-'.join([str(date.tm_hour), str(date.tm_min),str(date.tm_sec)])
def createdir():
'''创建当前日期和当前时间目录'''
path = os.path.dirname(os.path.abspath(__file__))
datedir = os.path.join(path,currentdate())
#如果当前日期目录不存的话就创建
if not os.path.exists(datedir):
os.mkdir(datedir)
timedir= os.path.join(datedir,currenttime())
#如果当前时间目录不存的话就创建
if not os.path.exists(timedir):
os.mkdir(timedir)
return timedir
def takescreenshot(savepath,picturename):
picturepath = os.path.join(savepath, picturename '.png')
try:
from pil import imagegrab
im=imagegrab.grab()
im.save(picturepath,"jpeg")
except exception as e:
print(traceback.print_exc())
# 获取浏览器驱动实例
driver = webdriver.chrome(executable_path='f:\\chromedriver')
#访问搜狗j9九游会老哥俱乐部交流区首页
driver.get('http://www.sogou')
time.sleep(3)
#搜狗j9九游会老哥俱乐部交流区首页截图
takescreenshot(driver,createdir(),'sogou')
time.sleep(1)
#退出浏览器
driver.quit()
执行完成后在当前目录下可以看到如下结果:
注意
- 前两种方式截的是浏览器的相关页面,第3种是整个电脑桌面;
- 创建时间或日期目录时%y-%m-%d_%h:%m:%s这种是错误的格式,所有的包括 '' : / \ ? * < > | 这些特殊字符windows文件名无都无法使用,也无法保存,起名时需要注意,可以换成这种%y-%m-%d_%h_%m_%s
本文标签: 种方法
j9九游会老哥俱乐部交流区的版权声明:本文标题:ui自动化测试:页面截图的3种方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727403406a1113105.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论