Python+Selenium进阶版(九)- 把截图类方法封装到前面的BasePage.py

  目标:把截图类方法封装到BasePage.py文件里。

  练习场景:百度首页截图

  basepage.py代码:

# 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()
    """
    def __init__(self,driver):
        """
        写一个构造函数,有一个参数driver
        :param driver:
        """
        self.driver = driver

    def back(self):
        """
        浏览器后退按钮
        :return:
        """
        self.driver.back()

    def forward(self):
        """
        浏览器前进按钮
        :return:
        """
        self.driver.forward()

    def open_url(self,url):
        """
        打开url站点
        :param url:
        :return:
        """
        self.driver.get(url)

    def quit_browser(self):
        """
        关闭并停止浏览器服务
        :return:
        """
        self.driver.quit()

    def take_screenshot(self):
        """
        截图并保存在根目录下的Screenshots
        :return:
        """
        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))

  

  测试类test_screenshot.py代码:

# coding=utf-8

import time
from selenium import webdriver
from test1.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()

  

参考文章:

原文地址:https://www.cnblogs.com/zhaocbbb/p/12661199.html