一文5000字详解Python中PO模式的设计与实现_python po模式

传统线性自动化,多个用例脚本中需要反复的定位同一个元素,PO设计模式可以减少这部分频繁定位元素的代码量

小节:减少重复代码的冗余,便于UI页面频繁变更下的元素定位维护。
将改写的脚本转为PO设计模式
首先在项目里创建一个 python package 命名为 pages ,然后在 pages 创建一个模块 base_page.py 用来作为第一层的 base_page核心层 。

如下图:

构建基础的 BasePage 层

尝试构建最基础的 base_page 层,代码示例如下:

coding:utf-8

from selenium import webdriver

class BasePage(object):

“”"

1、第一层 - 核心层-BasePage层,定义一个所有页面都继承的page层

2、对将要使用的 selenium 的底层方法进行二次封装

“”"

def init(self, driver, path=None): # 构造函数,类的初始化

“”"

为了方便编写将 driver 初始化,

先使用 “self.driver = webdriver.Chrome()” 后续改为 self.driver = driver

“”"

self.driver = webdriver.Chrome()

self.driver = driver

self.driver.implicitly_wait(5) # 定义全局的默认加载时间

self.load_page(path) # 访问并加载网页

def load_page(self, path=None): # 访问并加载网页,如果 path 不为空的话,直接传给 driver.get() 访问

if path is not None:

self.driver.get(path)

def by_xpath(self, xpath): # 二次封装 selenium 的 xpath 元素定位

return self.driver.find_element_by_xpath(xpath)

def js_click(self, xpath): # JavaScript 定位元素,并执行 click

self.driver.execute_script(‘arguments[0].click()’, self.by_x

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值