PageObjects支持库-Poium使用方法

PO模式

学过自动化的都知道PageObjects模式,将页面对象封装为类,页面元素和操作封装为类的属性和方法,在测试方法中调用页面对象进行测试。

PageObjects支持库-Poium使用方法_第1张图片

关于PO模式可见:http://t.csdn.cn/0DBlP

在PO模式下,我们一般定义个一个基础的BasePage类来封装一些常见的页面操作

在具体的页面继承BasePage来实现页面类

PageObjects支持库-Poium使用方法_第2张图片PageObjects支持库-Poium使用方法_第3张图片

 这样的写法也没有什么问题,但是在搭建框架时需要实现的内容较多。

Poium

  • poium库主要实现了Base类和Element类,可以将我们的页面元素直接定义为Element类,
  • 对selenium的元素操作进行了一些封装  https://github.com/SeldomQA/poium/blob/master/docs/selenium_sample.md
  • 支持playwright  https://github.com/SeldomQA/poium/blob/master/docs/playwright_sample.md
  • 支持appium  https://github.com/SeldomQA/poium/blob/master/docs/appium_sample.md

git地址:GitHub - SeldomQA/poium: Page Objects design pattern test library, support selenium、appium、playwright, etc

备注:刚发现这个库竟然是虫师写的,直呼666 

pip install poium

页面类

文档:https://github.com/SeldomQA/poium/blob/master/docs/page_element.md

新建BaiduPage.py

from poium import Page, Element
class BaiduPage(Page):
    search_input = Element(id_="kw")
    button=Element(id_="su")

    def input_text(self):
        self.search_input.input("周杰伦")

    def click_button(self):
        self.button.click()

 这里需要继承自Page类,页面元素定义为Element的实例,传入定位方法。

在元素操作里,调用的是poium封装的selenium,支持如input操作。

测试类

新建test_demo.py


from selenium import webdriver

from BaiduPage import BaiduPage

class TestDemo:

    def setup(self):
        self.driver=webdriver.Edge()

        self.baidu=BaiduPage(self.driver)
        self.baidu.open("http://www.baidu.com")

    def test_search(self):
        self.baidu.input_text()
        self.baidu.click_button()
     

创建driver后,直接作为参数传给BaiduPage,使用实例baidu访问url。

源码解析

webdriver.py:这个文件主要是定义了Page页面,方法返回的是selenium的driver方法。

Settings.py:定义一些设置

selenium.py:定义BasePage和Element,并封装了一些操作方法。

U2和wda:对APP自动化的支持

common:一些工具类

你可能感兴趣的:(#,web自动化selenium,自动化测试)