Python+Selenium中级篇之9-把截图类方法封装到前面的BasePage.py

来源:互联网 发布:java爬虫爬取今日头条 编辑:程序博客网 时间:2024/04/30 12:44

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

新的BasePage.py内容如下:

# coding=utf-8import osimport timefrom test.logger import Loggermylog = 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-8import timefrom selenium import webdriverfrom test.basepage import BasePageclass 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文件夹。

2 0