目标:把截图类方法封装到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()
参考文章: