文章目录
一、PO设计模式的介绍
看我上一篇的博客链接:
https://blog.csdn.net/weixin_39080072/article/details/90600498
二、PO设计模式进一步优化
在PO模式当中,我们做到了页面对象与测试用例的分离
。但在页面对象编写时,我们仍然还有优化的空间。
页面对象有一些共同的基本操作,可以封装起来,并可以在基本操作当中,加上日志和截图的处理
。
比如说我们在查找元素时,都需要等待。在PO模式当中,需要都写上等待和查找元素。那么就可以将其封装起来。
还有,对于alert 弹出框的处理,窗口的切换等等。
以下是BasePage.py 的部分内容示例:
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from Common import project_path
from selenium.webdriver.support.ui import Select
from Common import logger
import datetime
import time
import logging
class BasePage:
def __init__(self,driver):
self.driver = driver
#@pytest.mark.parametrize("参数名",列表数据)
#等待元素可见
def wait_eleVisible(self,loc,timeout=30, poll_frequency=0.5,model=None):
'''
:param loc: 元素定位表达式。元组类型,表达方式(元素定位类型,元素定位方法)index_attribute.user_link
:param timeout: 等待时间
:param poll_frequency: 频率
:param model:等待失败时,截屏需要的功能说明
:return:None
'''
logging.info('在{1}等待元素{0}可见'.format(loc,model))
try:
start= datetime.datetime.now()
WebDriverWait(self.driver,timeout,poll_frequency).until(EC.visibility_of_element_located(loc)