PO页面对象模型及实例

Page Object

是一种设计模式,它在测试自动化中已经成为流行的模式,用于增强测试维护和减少代码重复。页面对象是一个面向对象的类,用作AUT页面的接口。测试然后在需要与该页面的UlI交互时使用该页面对象类的方法。好处是,如果页面的U发生更改,测试本身不需要更改,只需要更改页面对象中的代码。随后,所有支持新UI的更改都位于一个位置。
原代码
在这里插入图片描述
代码结构分层
在这里插入图片描述
PO模型代码
Base:

class LoginBase:

    def login_input(self, input_placeholder):
        """
        登录用户名、密码输入框
        :param input_placeholder:
        :return:
        """
        return "//input[@placeholder='" + input_placeholder + "']"
 if __name__ == '__main__':
    # print(LoginBase().login_input("密码"))
    print(LoginBase().login_button("登录"))

Page

from base.LoginBase import LoginBase
class LoginPage(LoginBase):

    def login_input_value(self, driver, input_placeholder, input_value):
        """
        登录页输入值input_placeholder
        :param driver:
        :param input_placeholder:
        :param input_value:
        :return:
        """
        log.info("输入" + input_placeholder + "为:" + str(input_value))
        input_xpath = self.login_input(input_placeholder)#因为继承的LoginBase,所以直接self调用login_input方法
      	return driver.find_element_by_xpath(input_xpath).send_keys(input_value)

Testcase

from config.driver_config import DriverConfig
from page.LoginPage import LoginPage
class TestLogin:
	    def test1_login(self):
        	driver =DriverConfig().driver_config()
        	driver.get("http://www.tcpjwtester.top")
       	 	sleep(3)
       	 	LoginPage().login_input_value(driver,"用户名","周杰伦")
        	LoginPage().login_input_value(driver, "密码", "123456")
        	LoginPage().click_login(driver,"登录")
        	driver.quit()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值