PageObjects支持库-Poium使用方法

PO模式

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

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

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

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

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

Poium

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:一些工具类

猜你喜欢

转载自blog.csdn.net/seanyang_/article/details/132080576
今日推荐