0
点赞
收藏
分享

微信扫一扫

Python+Selenium 中级篇11 - 封装一个截图方法

凌得涂 2022-04-22 阅读 80

本文介绍把截图类方法封装到BasePage.py文件里,这个文件创建之前的二次封装方法有介绍:
我们截图类写死了把截图图片保存到根目录下的Screenshots文件夹里,图片名称是当前系统时间,图片后缀名是png。

在这里插入图片描述

# coding=utf-8
import os
import time

from test1.logger import Logger

mylog = Logger(logger='BasePage').getlog()

class BasePage(object):
    """
    主要是把常用的几个Selenium方法封装到BasePage这个类,我们这里演示以下几个方法
    back()
    forward()
    get()
    quit()
    refresh()
    """

    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 refresh_browser(self):
        """
        刷新浏览器方法
        :return none:
        """
        self.driver.refresh()

    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))


新建一个testScreenshots
测试类相关代码如下:

# coding=utf-8
import time
from selenium import webdriver
from test1.logger import Logger


mylogger = Logger(logger='TestMyLog').getlog()


class TestMyLog(object):

    def print_log(self):
        driver = webdriver.Chrome()
        mylogger.info("打开浏览器")
        driver.maximize_window()
        mylogger.info("最大化浏览器窗口。")
        driver.implicitly_wait(8)

        driver.get("https://www.baidu.com")
        mylogger.info("打开百度首页。")
        time.sleep(1)
        mylogger.info("暂停一秒。")
        driver.quit()
        mylogger.info("关闭并退出浏览器。")


testlog = TestMyLog()
testlog.print_log()

运行后,可以在根目录下Screenshots文件夹里找到百度首页截图。

举报

相关推荐

0 条评论