PO模式介绍

PO模式介绍目标1.深入理解PO模式的思想2.熟练掌握PO模式的分层思想1.存在的问题在做UI自动化时定位元素特别依赖页面,一旦页面发生变更就不得不跟着去修改定位元素的代码。举例:假设要对一个元素进行点击操作,而且会经常对该元素进行操作,那么你就可能会编写多处如下代码 1 driver.find_element_by_id(“login-btn”…

大家好,又见面了,我是你们的朋友全栈君。

目标

1. 深入理解PO模式的思想

2. 熟练掌握PO模式的分层思想

1. 存在的问题

在做UI自动化时定位元素特别依赖页面,一旦页面发生变更就不得不跟着去修改定位元素的代码。

举例:假设要对一个元素进行点击操作,而且会经常对该元素进行操作,那么你就可能会编写多处如下代码

 

1

driver.find_element_by_id("login-btn").click()

存在的问题:

如果开发人员修改了这个元素的id,这时候你就不得不修改所有对应的代码存在大量冗余代码

思考:如何来解决这个问题呢?

 

1. PO模式

PO是Page Object的缩写,PO模式是自动化测试项目开发实践的最佳设计模式之一。

核心思想是通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化, 只需要调整页面元素封装的代码,提高测试用例的可维护性、可读性。

PO模式可以把一个页面分为三层,对象库层、操作层、业务层。

 

对象库层:封装定位元素的方法。操作层:封装对元素的操作。

业务层:将一个或多个操作组合起来完成一个业务功能。比如登录:需要输入帐号、密码、点击登录三个操作。

 

2.1 引入PO模式的好处

引入PO模式前

存在大量冗余代码

业务流程不清晰后期维护成本大

引入PO模式后

 

减少冗余代码

业务代码和测试代码被分开,降低耦合性维护成本低

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131665.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 不动点与递归数列的极限有关吗_递推数列不动点法

    不动点与递归数列的极限有关吗_递推数列不动点法

    不动点与递归数列的极限
    有些收敛的数列才有不动点,比如x=1+x^(-1);x=1+x^(-2);x=1+x^(-3),下面写程序验证: 
    对x=1+x^(-3):
     
    (defunpow(numcount)
    (if(or(>count1)(eq count 1))
        (*num 
         (pownum 
            (-count1)

    2025年10月26日
    2
  • Linux – SVN下载项目

    Linux – SVN下载项目

    2022年1月15日
    50
  • AAA认证

    AAA认证AAA:认证、授权、计费的作用1、认证模式为AAA[Huawei]user-interfacevty04[Huawei-ui-vty0-4]authentication-mode?aaaAAAauthenticationpasswordAuthenticationthroughthepasswordofauserterminalinterface[Huawei-ui-vty0-4]authentication-modeaaa–将t.

    2022年6月7日
    93
  • jsessionid的困扰「建议收藏」

    问题:向某银行发送支付请求时,如果客户端cookie开启,第一次请求时,请求地址会自动增加一jsessionid,第二次没有问题。如果客户端cookie关闭,无论如何请求地址会自动添加一jsessionid,从而导致支付页面不能显示。————————-查了网上的一些解决办法,找到原因,如下:在你的程序第一次访问服务器的时候,服务端并不知道

    2022年4月14日
    109
  • laravel 开启定时任务需要操作

    laravel 开启定时任务需要操作

    2021年11月9日
    42
  • TabNine的Pro激活码【中文破解版】

    (TabNine的Pro激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月2日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号