Selenium的PO模式:Page Object Model

PO模式:全称:Page Object Model 简称POM,叫做页面对象,针对页面、UI界面    (译:配只.奥播摘可t.毛豆)

什么是Page Object Model 设计模式?

  • 相似功能地方:

    • 代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改,虽然几个用例看不出什么工作量,但是重复findElement的代码,已经让我们感到了代码的笨重。如果某些定位发生了改变,我们就得贯穿整个测试代码进行调整元素定位,这样就会导致我们的脚本在后期,难以维护。因此通过Page Object Model 我们可以创建更加健壮代码,并减少或者消除重复的测试代码,从而也能够提高代码的可读性,减少编写脚本的工作量。Page Object Model的实现,就是通过分离测试对象和测试脚本的抽象来实现的。
  • PO模式的优势
    • 当某个页面的元素发生变化,只需要修改该页面对象中的代码即可,测试用例不需要修改
    • 提高代码重用性,结构清晰,维护代码更容易
    • 测试用例发生变化时,不需要或者只需要修改少数页面对象即可
  • PO 模式:核心思想
    • 分层设计,分离测试用例 和 测试对象
    • 将页面的元素定位和元素行为 封装成一个 page 类
    • 实现页面对象和测试用例分离
  • 如:
    • 1、系统有30个页面,封装成 30个 页面类,有      元素定位 + 元素操作
    • 2、有500个用例 = 调用 不同的 页面类当中的 元素操作 串联起来
  • 比如:
    • 页面A =功能1,功能2,功能3.
    • 页面B =功能1,功能2,功能3
    • 用例1 =页面A的功能1 +页面A的功能2 +页面B的功能2

*******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!*******

原文地址:https://www.cnblogs.com/shouhu/p/12233225.html

时间: 2024-11-08 08:36:27

Selenium的PO模式:Page Object Model的相关文章

Page Object Model | POM (Selenium Webdriver For Python)

研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数调用,到重定义函数.从变量驱动,到数据驱动,再到关键字驱动,一步一步的默默走向自动化框架的构建.虽然还有没有投入使用,只是写几个demo,就慢慢的发现了 selenium自动用例脚本,相似功能地方,代码基本都是一样的,界面元素换个查找方式,把原来的使用 xpath方式,改为使用 id 查找,需要对每个用例脚本都要改

Page Object Model (Selenium, Python)

时间 2015-06-15 00:11:56  Qxf2 blog 原文  http://qxf2.com/blog/page-object-model-selenium-python/ 主题 SeleniumPython We have come a long way since our post on implementing the Page Object Model - Implementing the Page Object Model (Selenium + Python) Whil

Appium+Python之PO模型(Page object Model)

思考:我们进行自动化测试时,如果把代码都写在一个脚本中,代码的可读性会变差,且后期代码维护也麻烦,最好的想法就是测试对象和测试用例可以分离,可以很快定位问题,代码可读性高,也比较容易理解.这里推荐大家在自动化框架中加入PO模型思想,那什么是PO模型呢? 所谓的PO就是page object,通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,主要就是完成元素定位和业务操作:至于测试脚本要和ta区别开来,需要什么去这些页面类去调用即可. 上面流程图意思就是测试用例类调用不同的页面类,页面类调

Page Object Model

Page Object Model Framework which is also known as Page Object Design Pattern or Page Objects PO模式的最大优势是如果UI或者任何页面的HTML对象有了变化,测试并不需要任何改动.只有页面对象的代码受到了影响,却对测试代码无任何影响. Why? 想象一下当我们要处理100多个测试,包含了很多的stepDefinitions文件时项目中的代码行数会有多少?整个项目的代码将变得难以管理和维护.为了更好的管理

selenium(六)Page Object模式(使用selenium的PageFactory)

PageObject 类 import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.FindBy; import org.openqa.selenium.support.PageFactory; public class PageObject { private String url="http://www.baidu.com&qu

基于Python Selenium Unittest PO设计模式详解

本文章会讲述以下几个内容: 1.什么是PO设计模式(Page Object Model) 2.为什么要使用PO设计模式 3.使用PO设计模式要点 4.PO设计模式实例 1.什么是PO设计模式 (Page Object Model) 一种在测试自动化中变得流行的设计模式,使得自动化测试脚本的减少代码重复.更易读.减少维护成本. 一般PO设计模式有三层 第一层: 对Selenium 进行二次封装,定义一个所有页面都继承的 BasePage , 封装 Selenium 基本方法 例如:元素定位,元素等

python+selenium自动化软件测试(第7章):Page Object模式

什么是Page ObjectModel模式Page Objects是selenium的一种测试设计模式,主要将每个页面看作是一个class.class的内容主要包括属性和方法,属性不难理解,就是这个页面中的元素对象,比如输入用户名的输入框,输入登陆密码的输入框,登陆按钮,这个页面的url等,而方法,主要是指这个页面可以提供的具体功能.为什么选择POM?我们先看一段简单的代码如下: from selenium import webdriver import time driver = webdri

Test Automation With Selenium Using Page Object Design

WebDriver IntroductionA different way of automating the browser.. Create a browser-specific driver to control the browser directly and have to do this for each browser. Object oriented API. Doesn't need a real browser. No JavaScript limitations. No n

关于page object(PO)模型的介绍

点击链接加入QQ群 522720170(免费公开课.视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe 所谓的PO就是page object,通俗解释一下就是每个页面当成一个对象,给这些页面写一个类,主要就是完成元素定位和业务操作:至于测试脚本要和ta区别开来,需要什么去这些页面类去调用即可.这样的好处就是如果页面元素发生变化,你去维护页面类即可,测试类你基本不用管.(个人觉得理想丰满,现实骨感!) 说了这么多,估计还是会有童鞋不明白,那么就看看这张图,一