目标:封装一个基类和介绍如何实现POM。关于基类,是这样定义的:把一些常见的页面操作的selenium封装到base_page.py这个类文件,以后每个POM中的页面类,都继承这个基类,这样每个页面类都有基类的方法。
1.在实现封装基类里,我们实现了元素八大方式的定位和截图类封装。具体项目层级结构如下图。
2.基类base_page.py的具体实现代码,这里就封装了几个常用方法,其他方法,你自己去练习封装下。
import time
from selenium.common.exceptions import NoSuchElementException
import os.path
from framework.logger import Logger
logger = Logger(logger="BasePage").getlog()
class BasePage(object):
"""
定义一个页面基类,让所有页面都能继承这个类,封装一些常用的页面操作方法到这个类
"""
def __init__(self,driver):
self.driver = driver
def quit_browser(self):
"""
退出浏览器
:return:
"""
self.driver.quit()
logger.info("退出浏览器。")
def forward(self):
"""
单击当前页上的【前进】按钮
:return:
"""
self.driver.forward()
logger.info("单击当前页上的【前进】按钮。 ")
def back(self):
"""
单击当前页上的【后退】按钮。
:return:
"""
self.driver.back()
logger.info("单击当前页上的【后退】按钮。")
def wait(self,seconds):
"""
隐式等待
:return:
"""
self.driver.implicitly_wait(seconds)
logger.info("隐式等待 %d 秒。"%seconds)
def close(self):
"""
点击关闭当前窗口
:return:
"""
try:
self.driver.close()
logger.info("点击关闭当前窗口。")
except NameEr