UI自动化4_po封装

对象层

基础类

对selenium进行二次封装,把定位,操作,日志打印,截图等封装到一个方法

页面类

对每个页面进行的封装,把每个页面的每个元素的操作封装成一个方法

login_page.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from tools.ui.base_ui import BaseUI

# 调用BaseUI封装登录页面模块

class LoginPage(BaseUI):

    # 登录页面网址

    url = 'http://qa.yansl.com/#/login'

    # 用户名输入框

    p_username = "name=>username"

    # 密码输入框

    p_password = "name=>password"

    # 登录按钮

    p_login = "xpath=>(//span[contains(text(),'登录')])[1]"

    # 残忍拒绝按钮

    p_reject = "xpath=>(//span[contains(text(),'残忍拒绝')])"

    # 打开url

    def m_open(self):

        self.get(self.url)

    # 输入用户名

    def m_username(self, username):

        self.send_keys(self.p_username, username)

    # 输入密码

    def m_password(self, password):

        self.send_keys(self.p_password, password)

    # 点击登录按钮

    def m_login(self):

        self.click(self.p_login)

    # 点击取消弹框

    def m_reject(self):

        self.click(self.p_reject)


逻辑层

逻辑层

主要是按照页面功能,把实现一个页面功能需要操作的页面元素按顺序封装到一个方法内部

user_login.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from test_case.po.pages.login_page import LoginPage

def user_login(username,passowrd):

    login = LoginPage()

    login.m_open()

    login.m_username(username)

    login.m_password(passowrd)

    login.m_login()

    login.m_reject()

    login.m_login()


业务层

业务层

把封装好的页面上的一个个功能和使用该功能需要填入的数据组合起来,实现软件的业务逻辑。

test_user.py

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from test_case.po.logic.user_login import user_login

def test_login(driver):

    user_login("admin","123456")

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。