Python+Selenium中级篇之7-把截图类方法封装到前面的BasePage.py
Posted xiaofeng778
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python+Selenium中级篇之7-把截图类方法封装到前面的BasePage.py相关的知识,希望对你有一定的参考价值。
本文介绍把截图类方法封装到BasePage.py文件里,这个文件是在前面Selenium方法二次封装文章里创建的,具体代码请到前面这篇里找。我们截图类写死了把截图图片保存到根目录下的Screenshots文件夹里,图片名称是当前系统时间,图片后缀名是png。
新的BasePage.py内容如下:
# coding=utf-8 import os import time from test.logger import Logger mylog = Logger(logger=‘BasePage‘).getlog() class BasePage(object): """ 主要是把常用的几个Selenium方法封装到BasePage这个类,我们这里演示以下几个方法 back() forward() get() quit() """ def __init__(self, driver): """ 写一个构造函数,有一个参数driver :param driver: """ self.driver = driver def back(self): """ 浏览器后退按钮 :param none: """ self.driver.back() def forward(self): """ 浏览器前进按钮 :param none: """ self.driver.forward() def open_url(self, url): """ 打开url站点 :param url: """ self.driver.get(url) def quit_browser(self): """ 关闭并停止浏览器服务 :param none: """ self.driver.quit() def take_screenshot(self): """ 截图并保存在根目录下的Screenshots文件夹下 :param none: """ file_path = os.path.dirname(os.getcwd()) + ‘/Screenshots/‘ rq = time.strftime(‘%Y%m%d%H%M%S‘,time.localtime(time.time())) screen_name = file_path + rq + ‘.png‘ try : self.driver.get_screenshot_as_file(screen_name) mylog.info("开始截图并保存") except Exception as e: mylog.error("出现异常",format(e))
主要看最后一个截图类方法的封装。
测试类相关代码如下:
# coding=utf-8 import time from selenium import webdriver from test.basepage import BasePage class TestScreenshot(object): driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(10) basepage = BasePage(driver) def test_take_screen(self): self.basepage.open_url("https://www.baidu.com") time.sleep(1) self.basepage.take_screenshot() self.basepage.quit_browser() test = TestScreenshot() test.test_take_screen()
运行后,可以在根目录下Screenshots文件夹里找到百度首页截图。
本文就介绍了截图类方法添加到BasePage里,介绍了如何保存到根目录下的Screenshots文件夹。
小枫叮嘱读者多敲代码,真枪实弹地实践测试,我也是希望大家都掌握我每天分享的知识点。(海量免费学习资料,软件测试交流:1140267353 群,还会有同行一起技术交流)
上一篇 Python+Selenium中级篇之6-Python自定义封装一个简单的Log类
下一篇
以上仅供参考,希望对你有所帮助!
点个关注不迷路
小枫文章整理不易,欢迎各位朋友点赞关注
以上是关于Python+Selenium中级篇之7-把截图类方法封装到前面的BasePage.py的主要内容,如果未能解决你的问题,请参考以下文章
Python+Selenium中级篇之8-Python中的继承的使用
Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
Python+Selenium框架设计篇之4-框架内封装基类和实现POM
Python+Selenium练习篇之6-利用class name定位元素