PageObjects支持库-Poium使用方法

2023-11-18

PO模式

学过自动化的都知道PageObjects模式,将页面对象封装为类,页面元素和操作封装为类的属性和方法,在测试方法中调用页面对象进行测试。

关于PO模式可见:http://t.csdn.cn/0DBlP

在PO模式下,我们一般定义个一个基础的BasePage类来封装一些常见的页面操作

在具体的页面继承BasePage来实现页面类

 这样的写法也没有什么问题,但是在搭建框架时需要实现的内容较多。

Poium

git地址:GitHub - SeldomQA/poium: Page Objects design pattern test library, support selenium、appium、playwright, etc

备注:刚发现这个库竟然是虫师写的,直呼666 

pip install poium

页面类

文档:https://github.com/SeldomQA/poium/blob/master/docs/page_element.md

新建BaiduPage.py

from poium import Page, Element
class BaiduPage(Page):
    search_input = Element(id_="kw")
    button=Element(id_="su")

    def input_text(self):
        self.search_input.input("周杰伦")

    def click_button(self):
        self.button.click()

 这里需要继承自Page类,页面元素定义为Element的实例,传入定位方法。

在元素操作里,调用的是poium封装的selenium,支持如input操作。

测试类

新建test_demo.py


from selenium import webdriver

from BaiduPage import BaiduPage

class TestDemo:

    def setup(self):
        self.driver=webdriver.Edge()

        self.baidu=BaiduPage(self.driver)
        self.baidu.open("http://www.baidu.com")

    def test_search(self):
        self.baidu.input_text()
        self.baidu.click_button()
     

创建driver后,直接作为参数传给BaiduPage,使用实例baidu访问url。

源码解析

webdriver.py:这个文件主要是定义了Page页面,方法返回的是selenium的driver方法。

Settings.py:定义一些设置

selenium.py:定义BasePage和Element,并封装了一些操作方法。

U2和wda:对APP自动化的支持

common:一些工具类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PageObjects支持库-Poium使用方法 的相关文章

随机推荐

  • Apex安装失败(笔记记录分享)

    Apex安装失败 笔记记录 1 错误合集 No 1 error detected in the compilation of csrc multi tensor scale kernel cu No 2 module torch nn ha
  • Java long Long

    转载 https www cnblogs com c2g5201314 p 13024261 html 1 long 是 基本类型 Long 是 对象类型 2 long 默认值是 0 Long 默认值是 null 3 比较方法 1 Long
  • LVS 就是这么简单(数字后端物理验证篇)

    LVS 就是这么简单 数字后端物理验证篇 文章右侧广告为官方硬广告 与吾爱IC社区无关 用户勿点 点击进去后出现任何损失与社区无关 今天吾爱 IC 社区小编为大家带来数字 IC 后端实现物理验证中关于 LVS 的主题分享 其实小编一直觉得这
  • 调整echarts中图与legend的距离

    1 正常调整legend的位置 通过X改变横坐标位置 通过Y改变纵轴位置 x 可设定图例在左 右 居中 y 可设定图例在上 下 居中 legend y bottom data 阳性转阴性 阴性转阳性 阳性无症状转有症状 未检测 2 如果觉得
  • STM32F103ZET6【标准库函数开发】------04 串口USART1控制LED

    一 硬件介绍 STM32F103ZET6有5个串口 查看引脚图可以找到对应的IO口分别如下 串口 USART1 USART2 USART3 UART4 UART5 输入 输出方式 USARTx TX PA9 PA2 PB10 PC10 PC
  • forcats

    引子 最近在整理forcats工具包中的函数 发现该包只有fct reorder2 函数的功能不太容易理解 所以单独写一篇推文来介绍它 根据上篇提到的函数分类 它可以归为 调整类别顺序的函数 与它类似的还有一个fct reorder 函数
  • 九龙战登录只显示一个服务器,九龙战登录失败进不去解决办法

    九龙战是腾讯推出的一款三国题材的动作竞技手游 目前已经开启了不删档测试 但是玩家们在游戏中遇到了登录失败进不去的情况 下面小编就为大家介绍一下九龙战登录失败进不去解决办法 首先玩家们要知道九龙战是一款不删档测试不久的游戏 所以在这期间出现什
  • Android基于BroadcastReceiver和Service、SoundPool开发的防过充助手app

    前段时间换了一个小米4C手机 可是发现它的充电充满没有提醒 上一个手机换了就是因为不爱惜电池 让它过充的次数多了 虽然听别人说小米4c手机充电器是智能充电器 有保护作用 但我自己还是不放心 于是就亲手写了一个防过充小应用 已经在使用 可以达
  • 如何使用LaTeX制作PPT?

    作为LaTeX排版软件 LaTeX主要被用来制作书籍和文章 但由于现代LaTeX系统主要以PDF文件为输出方式 授课 演讲用的计算机幻灯片也日益成为LaTeX的一个重要应用 LaTeX中专门用来制作幻灯片的工具有powerdot文档类 pr
  • 探索.NET:​构建现代软件开发的核心框架

    摘要 在现代软件开发领域 选择一个合适的开发框架对于成功构建可靠 高效的应用程序至关重要 NET 读作 dot net 是一个强大而广泛使用的框架 为开发人员提供了丰富的工具和功能 以简化开发过程并加快交付时间 本文将介绍 NET的基本概念
  • 【手撕RPC服务分几步】

    手撕RPC服务分几步 前言 什么是RPC 从被调用方 provider 来说 从调用方 consumer 来说 扩展思考 dubbo架构图 前言 本文试图通过手撕RPC的理论步骤来帮助我们更好的理解其特性 也更好的理解像Dubbo sofa
  • flutter 填坑之旅(dart学习笔记篇)

    俗话说 工欲善其事必先利其器 想要撸flutter app 而不懂 dart 那就像一个不会英语的人在和英国人交流 懵 安装 dart 就不用说了 比较简单dart 官网 https dart dev 安装完成后就开启学习dart 旅程吧
  • MyEclipse配置Tomcat7

    首先我们打开Myeclipse 进入偏好设置window gt perferences 进入偏好设置 perferences 在偏好设置的搜索栏那里输入tomcat查找tomcat 如下图所示 3 我们可以看到搜索到的有四个tomcat项
  • (笔试前准备)字符串匹配算法总结

    我想说一句 我日 我讨厌KMP KMP虽然经典 但是理解起来极其复杂 好不容易理解好了 便起码来巨麻烦 老子就是今天图书馆在写了几个小时才勉强写了一个有bug的 效率不高的KMP 特别是计算next数组的部分 其实 比KMP算法速度快的算法
  • STM32 HAL库更改中断向量表的偏移地址

    以STM32F767为例 打开system stm32f7xx c文件 定位VECT TAB OFFSET 更改此宏定义的值 即可更改偏移量
  • 富维火焰识别算法

    火灾是威胁公共安全 危害人民生命财产的灾害之一 加强消防安全管理是头等大事 对火灾做到早预防 早发现 尽量避免火灾的发生尤为重要 近年来随着网络摄像机的广泛使用以及图像处理技术的不断发展 基于视频的北京富维图像火焰识别算法得到了越来越多的关
  • Android Rom修改制作工具软件集合

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 SIN2IMG 用于固件ftf中system sin的解包 下载地址 SIN2IMG rar 使用方法 将固件ftf文件用rar打开 解压出system sin文件 将
  • Idea 修改默认的Maven配置及修改为阿里源

    每次使用Idea创建或者导入Maven项目的时候 Idea都会使用系统默认的Maven 此时 如果我们想使用自定义安装的Maven 需要在File gt other settings gt Settings for New Projects
  • STM32-custom usb

    如何建立一个自定义的HID工程呢 下面就来讲讲 首先先介绍下工程的架构 工程的总体架构下图所示 按照下图架构建工程 分析下工程布局 首先是APP 这个组里存放着主文件mian c 管理所有中断服务程序stm3210x it c 及其管理外设
  • PageObjects支持库-Poium使用方法

    PO模式 学过自动化的都知道PageObjects模式 将页面对象封装为类 页面元素和操作封装为类的属性和方法 在测试方法中调用页面对象进行测试 关于PO模式可见 http t csdn cn 0DBlP 在PO模式下 我们一般定义个一个基