当前位置: 首页 > wzjs >正文

襄阳网站制作近期的新闻消息

襄阳网站制作,近期的新闻消息,九度互联网站推广公司,山东省建设资格注册中心网站以下是关于 poium 测试库 的详细介绍,涵盖其核心功能、使用方法及与原生 Selenium 的对比,帮助快速掌握这一工具: 1. poium 简介 定位:基于 Selenium 的 Page Object 模式增强库,专注于简化元素定位和页面操作。 核心…

以下是关于 poium 测试库 的详细介绍,涵盖其核心功能、使用方法及与原生 Selenium 的对比,帮助快速掌握这一工具:


1. poium 简介

  • 定位:基于 Selenium 的 Page Object 模式增强库,专注于简化元素定位和页面操作。

  • 核心目标

    • 通过简洁的 API 提升代码可读性。

    • 减少样板代码,提升测试脚本开发效率。

    • 内置智能等待、链式调用等实用功能。

  • 适用场景:Web 自动化测试(尤其适合中大型项目需要维护 Page Object 的场景)。


2. 安装 poium

bash

复制

pip install poium

3. 核心功能与使用

3.1 元素定位

  • 支持多种定位方式(语法更简洁):

    python

    复制

    from poium import Page, Elementclass LoginPage(Page):username = Element(id_="username", describe="用户名输入框")  # id定位password = Element(css=".password", describe="密码输入框")  # CSS选择器submit = Element(xpath="//button[@type='submit']", describe="提交按钮")

3.2 链式操作

  • 流式调用提升代码可读性:

    python

    复制

    LoginPage().username.input("admin").password.input("123456").submit.click()

3.3 智能等待

  • 自动处理元素加载等待,无需手动编写 WebDriverWait

    python

    复制

    # 元素默认等待时间(全局配置)
    from poium import config
    config.timeout = 10  # 设置全局等待时间为10秒# 单个元素自定义等待
    error_msg = Element(css=".error", timeout=5)

3.4 元素操作扩展

  • 内置丰富操作方法

    python

    复制

    element.input("text")     # 输入文本
    element.click()           # 点击
    element.clear()           # 清空内容
    element.get_text()        # 获取文本
    element.is_displayed()    # 判断元素是否可见

3.5 断言增强

  • 集成常用断言方法

    python

    复制

    from poium import assertsasserts.assert_title("首页")                     # 断言页面标题
    asserts.assert_element_text(login.submit, "登录") # 断言元素文本

4. 完整示例

Page Object 定义

python

复制

from poium import Page, Elementclass BaiduSearchPage(Page):search_input = Element(id_="kw", describe="搜索框")search_button = Element(id_="su", describe="搜索按钮")def search(self, keyword):self.search_input.input(keyword)self.search_button.click()

测试用例(结合 pytest)

python

复制

def test_baidu_search():page = BaiduSearchPage()page.open("https://www.baidu.com")page.search("poium")asserts.assert_title_contains("poium")

5. 与原生 Selenium 对比

功能原生 Seleniumpoium
元素定位driver.find_element(By.ID, "kw")Element(id_="kw")
元素操作element.send_keys("text")element.input("text")
等待处理需手动编写 WebDriverWait自动智能等待(可配置超时)
代码结构需自行封装 Page Object内置 Page 类,直接继承即可
断言结合 unittest 或 pytest 断言内置 asserts 模块提供专用断言方法

6. 实践

poium + pytest + Allure

  1. 目录结构

    复制

    project/├── pages/          # 存放Page Object类├── tests/          # 测试用例├── conftest.py     # pytest配置(如driver初始化)└── utils/          # 工具函数(如数据生成)
  2. Driver 管理

    python

    复制

    # conftest.py
    import pytest
    from selenium import webdriver
    from poium import Browser@pytest.fixture(scope="session")
    def driver():driver = webdriver.Chrome()yield Browser(driver)  # 将原生driver封装为poium的Browser对象driver.quit()
  3. 数据驱动(结合 pytest.mark.parametrize):

        python

        复制

import pytest@pytest.mark.parametrize("keyword", ["selenium", "poium", "pytest"])
def test_search(driver, keyword):page = BaiduSearchPage(driver)page.open("https://www.baidu.com")page.search(keyword)asserts.assert_title_contains(keyword)

seldom + poium

import seldom
from poium import Page, Elementclass BaiduPage(Page):"""baidu page"""search_input = Element(id_="kw")search_button = Element(id_="su")class BaiduTest(seldom.TestCase):"""Baidu search test case"""def test_case(self):"""A simple test"""page = BaiduPage(self.driver, print_log=True)page.open("https://www.baidu.com")page.search_input.send_keys("seldom")page.search_button.click()self.assertTitle("seldom_百度搜索")if __name__ == '__main__':seldom.main(browser="chrome")

7. 常见问题

Q1:如何处理动态元素(如弹窗)?

  • 方案:通过 Element 的 timeout 参数调整等待时间,或结合 is_displayed() 判断。

    python

    复制

    class PopupPage(Page):confirm_btn = Element(css=".confirm", timeout=5)def test_handle_popup():if PopupPage().confirm_btn.is_displayed():PopupPage().confirm_btn.click()

Q2:如何与 Allure 报告集成?

  • 步骤

    1. 安装 pytest-allure

      bash

      复制

      pip install allure-pytest
    2. 运行测试并生成报告:

      bash

      复制

      pytest --alluredir=./allure-results
      allure serve ./allure-results

Q3:如何复用公共页面组件?

  • 方案:通过类继承或 Mixin 模式复用组件。

    python

    复制

    class HeaderComponent(Page):home_link = Element(link_text="首页")class HomePage(HeaderComponent):search_input = Element(id_="search")

8.总结

  • poium 优势:简化元素操作、内置智能等待、提升代码可维护性,适合中大型项目。

  • 适用项目:需要长期维护的 Web 自动化测试,尤其是遵循 Page Object 模式的项目。

http://www.dtcms.com/wzjs/442137.html

相关文章:

  • 网站psd切图做响应式效果seo优化方法有哪些
  • 网站备案要多少天推广团队在哪里找
  • 高端的网站设计公司上海服务政策调整
  • 宜昌做网站的公司百度应用市场
  • 网站中数据库教程百度云搜索引擎入口百度网盘
  • h5源码分享网快速排名优化推广价格
  • 门户网站建设公司案例排名优化网站建设
  • 北京网站建设手机号公司官网开发制作
  • 做网站头视频新闻软文推广案例
  • 石家庄网站建设hebsooseo网站诊断价格
  • 男女怎么做那个视频网站百度电脑版官网下载
  • php网站开发实例教程思考题手机网页设计
  • 青海省住房和城乡建设部网站淘宝seo搜索优化
  • 网站怎么做运营推广舟山seo
  • 文化建设网站怎么创建网站的快捷方式
  • 镜美硅藻泥网站是那家公司做的重庆营销型网站建设公司
  • 上海住远建设工程监理公司网站百度在线扫题入口
  • 天津做不锈钢的网站制作网页完整步骤代码
  • 学校网站设计流程品牌策划方案模板
  • 摄影 wordpress兰州seo优化
  • 网站改中文谷歌推广开户
  • 网站开发大数据搜索
  • 哪些网上订餐的网站做的好我对网络营销的理解
  • wordpress移动端添加广告位百度网站优化方案
  • 网站网站建设微信crm系统
  • 网站怎么去优化网络推广方案范文
  • 莱芜做网站的公司深圳seo优化培训
  • 重庆建网站多少钱北京seo服务
  • 网址导航网站域名注册后如何建网站
  • 青海小学网站建设太原百度seo排名软件