Python+Selenium中级篇之7

本文介绍把截图类方法封装到BasePage.py文件里,这个文件是在前面Selenium方法二次封装文章里创建的,具体代码请到前面这篇里找。我们截图类写死了把截图图片保存到根目录下的Screenshots文件夹里,图片名称是当前系统时间,图片后缀名是png。

新的BasePage.py内容如下:

1# coding=utf-8 2import os 3import time 4 5from test.logger import Logger 6 7mylog = Logger(logger='BasePage').getlog() 8class BasePage(object): 9""" 10主要是把常用的几个Selenium方法封装到BasePage这个类,我们这里演示以下几个方法 11back() 12forward() 13get() 14quit() 15""" 16 17def __init__(self, driver): 18""" 19写一个构造函数,有一个参数driver 20:param driver: 21""" 22self.driver = driver 23 24def back(self): 25""" 26浏览器后退按钮 27:param none: 28""" 29self.driver.back() 30 31def forward(self): 32""" 33浏览器前进按钮 34:param none: 35""" 36self.driver.forward() 37 38def open_url(self, url): 39""" 40打开url站点 41:param url: 42""" 43self.driver.get(url) 44 45def quit_browser(self): 46""" 47关闭并停止浏览器服务 48:param none: 49""" 50self.driver.quit() 51 52def take_screenshot(self): 53""" 54截图并保存在根目录下的Screenshots文件夹下 55:param none: 56""" 57file_path = os.path.dirname(os.getcwd()) + '/Screenshots/' 58rq = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) 59screen_name = file_path + rq + '.png' 60try : 61self.driver.get_screenshot_as_file(screen_name) 62mylog.info("开始截图并保存") 63 64except Exception as e: 65mylog.error("出现异常",format(e))

主要看最后一个截图类方法的封装。
测试类相关代码如下:

1# coding=utf-8 2import time 3from selenium import webdriver 4 5from test.basepage import BasePage 6 7 8class TestScreenshot(object): 9driver = webdriver.Chrome() 10driver.maximize_window() 11driver.implicitly_wait(10) 12basepage = BasePage(driver) 13 14def test_take_screen(self): 15self.basepage.open_url("https://www.baidu.com") 16time.sleep(1) 17self.basepage.take_screenshot() 18self.basepage.quit_browser() 19 20test = TestScreenshot() 21test.test_take_screen()

运行后,可以在根目录下Screenshots文件夹里找到百度首页截图。
本文就介绍了截图类方法添加到BasePage里,介绍了如何保存到根目录下的Screenshots文件夹。

小枫叮嘱读者多敲代码,真枪实弹地实践测试,我也是希望大家都掌握我每天分享的知识点。(海量免费学习资料,软件测试交流:1140267353 群,还会有同行一起技术交流)

上一篇    Python+Selenium中级篇之6-Python自定义封装一个简单的Log类

下一篇    

以上仅供参考,希望对你有所帮助!

点个关注不迷路
小枫文章整理不易,欢迎各位朋友点赞关注

点赞
收藏

评论区

加载中...

相关推荐

UIWebView长按保存图片和识别图片二维码的实现方案(使用缓存)

0x00需求:长按识别UIWebView中的二维码,如下图长按识别二维码0x01方案1:给UIWebView增加一个长按手势,激活长按手势时获取当前UIWebView的截图,分析是否包含二维码。核心代码:略优点:流程简单,可以快速实现。不足:无法实现保存UIWebView中图片,如果当前We

STM32嵌入式开发学习笔记(二):将功能封装为库文件

将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里。库文件就是你代码开始部分写的include<xxxx.h里面的xxxx.h,让我们打开stdio.h文件看一看里面具体有什么内容。!(https://oscimg.oschina.net/oscnet/71321f0b3

【Flutter实战】图片和Icon

3.5图片及ICON3.5.1图片Flutter中,我们可以通过Image组件来加载并显示图片,Image的数据源可以是asset、文件、内存以及网络。ImageProviderImageProvider是一个抽象类,主要定义了图片数据获取的接口load(),从不同的数据源获取图片需要实现不同的ImageProvi

CococsCreator 常用UI组件(Canvas、Widget、Button、Layout、EditBox、RichText、ScrollView)(第十三篇)

一、Canvas组件这个Canvas组件在前面篇章有讲过的。!在这里插入图片描述(https://oscimg.oschina.net/oscnet/up7e35da59f73f899db7689319ddd07379.png)属性说明DesignResolution设计分辨率(内容生产者在制作场景时使

Mac python3 环境下 完善pdf转jpg脚本

由于样本图片数据都是保存在pdf里,想拿到样本必须先把图片从pdf中提取出来,算是数据清洗中的一点小小的积累吧。这里不得不吐槽一下公司存储图片的机制,业务员把jpg格式的照片放到word里,然后用工具把word保存为pdf,最后上传到公司服务器里,这简介反人类,不但丢失了图片头文件信息,还造成后期数据转换的大量时间资源的浪费,可能pdf格式会小一

Cypress web自动化29

前言做web自动化的时候,我们希望用例失败了能截图,这是之前用selenium写ui自动化用例的时候经常遇到的问题。cypress可以说是业界良心了,不仅帮我们失败的时候自动截图保存下来,还把每个用例都录制成了mp4的小视频,方便追踪问题的时候回复视频screenshots失败截图