web自动化测试POM设计模式

页面对象模型(Page Object Model)是一种流行的设计模式,用于提高测试自动化中的代码维护性和减少重复。通过创建面向对象的类来代表页面,测试代码只与这些类的方法交互,从而在页面UI变化时只需更新页面对象代码。该模式有三个层级:页面层、操作层和业务层。通过这种方式,测试代码与页面特定代码分离,元素管理和复用得到改善。在Python中,可以结合selenium库利用此模式编写测试用例。
摘要由CSDN通过智能技术生成

页面对象模型:Page object models


Page Object是一种设计模式,已在测试自动化中流行,以增强测试维护并减少代码重复。页面对象是面向对象的类,测试只要需要与该页面的UI进行交互,便会使用该页面对象类的方法。好处是,如果页面的UI更改了,则测试本身不需要更改,只需更改页面对象中的代码即可。

页面对象设计模式优点:

  • 测试代码和页面特定代码之间有清晰的区分, 提高可维护性
  • 集中管理元素对象
  • 代码可复用性强,成本低

模式层级设计分三层:

  • 页面层:主要封装一些定位方法、等待方法…
  • 操作层:调用页面层的方法,操作元素
  • 业务层:规划好每个业务的元素定位,服务于操作层

下图中针对文件夹名称作了备注信息,仅供参考:
在这里插入图片描述

common/basePage.py


import logging
from . import pathPage as PG
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


class BasePage:
    def __init__(self, driver: WebDriver):
        self.driver = driver

    def page_waits(self, located, time_out, poll_frequency):
        """
        获取元素等待
        :param located: 元素
        :param time_out: 超时
        :param poll_frequency: 轮询时间
        :return:
        """
        WebDriverWait(self.driver, time_out, poll_frequency).until(EC.visibility_of_element_located(located))

    def page_element_is_exits(self, located, image):
        """
        判断页面元素是否存在,存在就返回True
        :param located: 元素
        :param image:  图片
        :return:
        """
        try:
            WebDriverWait(self.driver, 20, 1).until(EC.presence_of_element_located(located))
        except Exception as
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值