【selenium实战2】企业微信PageObject实战

【selenium实战2】企业微信PageObject实战

  • 复习重点:
    显式等待隐式等待、 元素定位、以及PO相关

课堂演示代码github链接

PO官方资料

selenium官方网站关于PO的说明:
https://www.selenium.dev/documentation/en/guidelines_and_recommendations/page_object_models/

马丁福勒个人博客,关于PO的说明: https://martinfowler.com/bliki/PageObject.html

PO核心思想

PO六大原则

六大原则解读

注意:不要百分百遵照,要根据需求灵活变化

  • 方法意义
    • 用公共方法代表UI所提供的功能
    • 方法应该返回其他的PageObject或者返回用于断言的数据
    • 同样的行为不同的结果可以建模为不同的方法
    • 不要在方法内加断言
  • 字段意义
    • 不要暴露页面内部的元素给外部
    • 不需要建模UI内的所有元素

刚开始写用例的思路

  1. 根据界面封装po类与方法,实现暂时设置为空
  2. 编写用例
  3. 实现po内的方法,与自动化框架开始结合
  4. 调试

优化

basepage 负责所有的公共方法


class BasePage:
    def __init__(self):
        option = Options()
        option.debugger_address = "localhost:9222"
        self.driver = webdriver.Chrome(options=option)
        self.driver.get("https://work.weixin.qq.com/wework_admin/frame")

隐式等待、显示等待

隐式等待:
解决:只要使用find_element 、find_elements 就会触发。通常用于element not found
不能解决: 比如说,某些点击问题、被遮挡的问题
显示等待:
某些点击问题、被遮挡的问题

课件作业

使用 PO实现 添加成员

课件作业

使用 PO实现 添加成员

关闭