返回顶部
首页 > 资讯 > 后端开发 > Python >python中的PO设计模式
  • 811
分享到

python中的PO设计模式

python 2023-09-14 11:09:38 811人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

PO (Page Object) 设计模式是一种在测试自动化中使用的设计模式,用于将页面对象从测试代码中分离出来,以提高代码的可维护

PO (Page Object) 设计模式是一种在测试自动化中使用的设计模式,用于将页面对象从测试代码中分离出来,以提高代码的可维护性和可读性。PO 设计模式将页面的不同元素封装为一个个独立的对象,每个对象代表一个页面或页面的一部分,通过提供特定的方法和属性来与页面进行交互。

python 中,使用 PO 设计模式可以按照以下步骤进行实现:

1. 创建一个基类作为所有页面对象的父类,可以命名为 `BasePage`。该类应该包含一些通用的方法,例如加载页面、查找元素、等待元素可见等。

```Python
from selenium import WEBdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

class BasePage:

   def __init__(self, driver):

       self.driver = driver

   def load_page(self, url):

       self.driver.get(url)

   def find_element(self, locator):

       return self.driver.find_element(*locator)

   def wait_for_element_visible(self, locator, timeout=10):

       wait = WebDriverWait(self.driver, timeout)

       return wait.until(EC.visibility_of_element_located(locator))
```

2. 创建页面对象类,每个页面对象类代表一个页面或页面的一部分。页面对象类应该继承自 `BasePage` 类,并包含与页面相关的方法和属性。

```python
class LoginPage(BasePage):

   # 定义页面元素的定位器

   username_locator = (By.ID, 'username')

   passWord_locator = (By.ID, 'password')

   login_button_locator = (By.ID, 'login-button')

   def enter_username(self, username):

       username_element = self.wait_for_element_visible(self.username_locator)

       username_element.send_keys(username)

   def enter_password(self, password):

       password_element = self.wait_for_element_visible(self.password_locator)

       password_element.send_keys(password)

   def click_login_button(self):

       login_button_element = self.wait_for_element_visible(self.login_button_locator)

       login_button_element.click()
```

3. 在测试代码中使用页面对象类来执行测试操作。

```python
driver = webdriver.Chrome()
login_page = LoginPage(driver)
login_page.load_page('Http://example.com/login')
login_page.enter_username('testuser')
login_page.enter_password('password')
login_page.click_login_button()
```

通过使用 PO 设计模式,测试代码可以更加简洁和可读,而且当页面发生变化时,只需要修改页面对象类中的定位器,而不需要修改测试代码。这样可以提高代码的可维护性,减少维护成本。

--结束END--

本文标题: python中的PO设计模式

本文链接: https://lsjlt.com/news/407153.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python中的PO设计模式
    PO (Page Object) 设计模式是一种在测试自动化中使用的设计模式,用于将页面对象从测试代码中分离出来,以提高代码的可维护...
    99+
    2023-09-14
    python
  • Python中PO模式如何设计与实现
    本文小编为大家详细介绍“Python中PO模式如何设计与实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python中PO模式如何设计与实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是PO模式一种在测...
    99+
    2023-07-02
  • 一文详解Python中PO模式的设计与实现
    目录什么是PO模式PO 三层模式PO 设计模式的优点将改写的脚本转为PO设计模式构建基础的 BasePage 层构建首页的 Page 层(HomePage)构建登录页的 Page 层...
    99+
    2024-04-02
  • Python 设计模式中命令模式
    目录1.命令模式2.应用场景3.代码示例1.命令模式 命令模式的目的是解耦调用操作的对象(调用者)和提供实现的对象(接收者)。 命令模式的思路是在调用者和接收者之间插入一个命令类(C...
    99+
    2024-04-02
  • Python设计模式中的备忘录模式
    目录备忘录模式应用场景代码示例总结备忘录模式 备忘录模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 简单来...
    99+
    2024-04-02
  • python设计模式
    参考网址:https://yq.aliyun.com/articles/280715utm_content=m_36549...
    99+
    2023-01-31
    模式 python
  • Python设计模式中的策略模式详解
    目录策略模式命令模式策略模式 策略模式是一个经典的模式,简化代码。 电商领域有个功能明细可以使用“策略”模式,就是根据客户的属性或订单中的商品计算折扣。 比如...
    99+
    2023-02-08
    Python策略模式 Python设计模式
  • 【python 设计模式】单例模式
    单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中...
    99+
    2023-01-31
    模式 python
  • Python设计模式——单例模式
    一、单例模式理论单例模式:    保证某一个类只有一个实例,而且在全局只有一个访问点优点:    1、由于单例模式要求在全局内只有一个实例,因而可以节省比较多的内存空间    2、全局只有一个接入点,可以更好地进行数据同步控制,避免多重占用...
    99+
    2023-01-31
    模式 Python
  • Python设计模式中的创建型工厂模式
    目录一、工厂模式(Factory Pattern)二、应用场景三、编码示例1、简单工厂模式2、工厂方法模式3、抽象工厂模式一、工厂模式(Factory Pattern) 工厂模式(F...
    99+
    2024-04-02
  • Python设计模式中的结构型桥接模式
    目录一、桥接模式二、应用场景三、代码示例一、桥接模式 桥接模式,希望能够将一个事物的两个维度分离(解耦),使其都可以独立地变化,并通过桥梁连接起来。 (类)抽象部分(Abstract...
    99+
    2024-04-02
  • Python设计模式中的行为型策略模式
    目录一、策略模式二、应用场景三、代码示例一、策略模式 策略模式中,首先定义了一系列不同的算法,并把它们一一封装起来,然后在策略类中,使这些算法可以相互替换。这意味着,让一个类的行为(...
    99+
    2024-04-02
  • Python设计模式中的状态模式是什么
    这篇文章将为大家详细讲解有关Python设计模式中的状态模式是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。状态模式状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程。优点:封装了状态...
    99+
    2023-06-29
  • Appium PO模式UI自动化测试框架——设计与实践
        😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的...
    99+
    2023-09-02
    python 自动化 测试工具
  • 初探Java设计模式4:JDK中的设计模式
    JDK中设计模式本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图。首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助。一、设计模式是什么(1)反复出现问题的解决方案(2)增强软件的灵活性(3)...
    99+
    2023-06-02
  • 【设计模式】揭秘 VUE 计算属性中的设计模式
    Observer 模式 Observer 模式是一种设计模式,允许对象观察另一个对象的内部状态并做出相应的反应。在 VUE 中,我们可以使用计算属性来实现 Observer 模式。当被观察对象的属性发生改变时,计算属性会自动重新计算并触...
    99+
    2024-02-20
    VUE 计算属性 设计模式 Observer 模式 Memoization 模式 State 模式
  • Python中有哪些设计模式
    Python中有哪些设计模式,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。目前的功能可以增加功能块可以增加连接线可以移动功能块可以输出JSON格式将来的功能支持基本的演算功...
    99+
    2023-06-19
  • Python 设计模式中的创建型建造者模式
    目录一、建造者模式二、代码示例一、建造者模式 建造者模式,顾名思义类似于建筑工人,他们按照有条理的施工顺序(e.g. 打桩 => 浇筑框架 => 砌墙 => 装修)...
    99+
    2024-04-02
  • Python设计模式中的结构型适配器模式
    目录一、适配器模式二、应用场景三、代码示例方式一方式二一、适配器模式 适配器,顾名思义是一种万能的接口,达到万能转换的效果。 适配器模式,定义一个适配器类,并且在该类中定义了适配器接...
    99+
    2024-04-02
  • Python设计模式中的状态模式你了解吗
    目录状态模式应用场景代码示例总结状态模式 状态模式,当对象的内部状态发生了改变的时候,允许对象执行不同的流程。 优点: 封装了状态转换规则。枚举了可能的状态,在枚举状态之前需要确定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作