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()
参考文章:

浙公网安备 33010602011771号