本文介绍把截图类方法封装到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文件夹里找到百度首页截图。