WebUI自动化中截图的使用
自动化 使用 截图 WebUI
2023-06-13 09:16:46 时间
前言
做UI自动化时,有时候可能因为需要把某个步骤的界面显示截图保存,这里我用到的是webdriver的截图功能。
环境搭建
这里说的UI自动化指的是 web的UI自动化,使用的是Python+Selenium+webdriver写的,用Unittest框架来组织用例和脚本。具体环境搭建可以参考之前的环境搭建详细文章:
https://blog.csdn.net/NoamaNelson/article/details/102971936
封装截图功能creenShot.py
driver:指的是使用哪个浏览器的驱动,我后边使用的是Chrome
# coding=utf-8
import time
from selenium import webdriver
def sav_creenshot(driver):
now=time.strftime("%Y-%m-%d-%H_%M_%S",time.localtime(time.time())) # 截图保存的文件名格式
pic_path = "./"+now+'_screen.png' # 截图保存的路径
# print(pic_path)
driver.save_screenshot(pic_path) # 调用Driver的截图保存功能
示例test_baidu.py
写一个百度搜索hello的实例,test_baidu.py
# coding=utf-8
from selenium import webdriver
import time
import unittest
import logging
from creenShot import sav_creenshot # 导入刚刚封装的截图方法
class Testbaidu(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome() # 指定浏览器驱动
self.url = "https://www.baidu.com/" # URL地址
self.driver.maximize_window() # 最大化窗口
self.driver.get(self.url) # 获取访问网址
self.log = logging.getLogger() # 记录日志
def tearDown(self):
self.driver.close() # 关闭浏览器
def test_search(self):
# 搜索框输入“hello”
self.log.info("输入框输入hello")
self.driver.find_element_by_id("kw").send_keys("hello")
self.driver.find_element_by_id("su").click()
time.sleep(2)
sav_creenshot(self.driver) # 截图
self.assertIn("hello", self.driver.page_source)
self.log.info("搜索成功")
if __name__ == "__main__":
unittest.main()
相关文章
- 聚焦自动化与智能化,数据中心迈入运营新时代
- 10 个杀手级的 Python 自动化脚本
- 《上海悠悠接口自动化平台》-1.新增API 与 各参数的描述
- 【Linux操作系统】自动化编译make和Makefile
- 基于Unittest框架,使用Python+Selenium+Webdriver的WebUI自动化测试项目应用实例(附源码)
- 如何使用SGXRay自动化检测SGX应用中的安全漏洞
- Python 自动化指南(繁琐工作自动化)第二版:七、使用正则表达式的模式匹配
- Python 自动化指南(繁琐工作自动化)第二版:十五、使用 PDF 和 WORD 文档
- 自动化测试常用断言的使用方法(python)详解编程语言
- 脚本实现自动化?使用脚本实现Linux系统自动化操作(linux系统如何用)
- MySQL数据库使用JavaScript操作基于JavaScript实现MySQL数据库自动化操作(mysql-js)
- 自动化Linux 任务自动化:提高效率降低开支(linuxat任务)
- 利用Oracle触发器实现的数据库自动化(oracle触发器类型)
- 使用Oracle触发器实现数据库自动化(oracle触发器类型)
- 使用Oracle触发器轻松自动化任务(oracle触发器类型)
- 使用 Oracle 触发器增强数据库自动化能力(oracle触发器类型)
- MySQL管理二进制数据实现自动化运行(mysql二进制数据)
- 使用 Ansible 的 Kubernetes 模块实现容器编排自动化
- 管理MySQL 使用CMD管理数据库实现自动化管理(mysql数据库cmd)
- 数据库Oracle使用触发器实现灵活自动化(oracle触发器建立)
- 轻松实现自动化配置Redis(自动化配置redis)
- MySQL中如何使用Event调度器实现自动化任务(mysql 中event)
- Oracle使用Udev构建自动化设备配置管理(oracle使用udev)
- Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解