PO设计模式(二) BasePage 提取

本文探讨了PO设计模式的进一步优化,通过BasePage对页面元素的等待、查找以及alert弹出框和窗口切换等操作进行封装,旨在提高代码的复用性和可维护性。
摘要由CSDN通过智能技术生成

一、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)
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值