webui自动化测试框架(4)——对每个页面进行封装page


在这里插入图片描述

page层:把每个单独的页面独立出来,管理自己页面中的元素的基本操作
page里面的页面文件是随时都在增加的,也就是在做业务流程时都需要用到哪些页面就会把哪些页面封装在page里面,所以说它是随着业务层在增加的。
同样我也拿商城来举个例子,比如添加订单这个业务,首先需要用户登录,需要对登录页进行页面封装,然后进入首页,对首页进行封装,再进入个人中心/设置页,对个人中心页进行封装这算是一个业务流程的页面需要,如果下单之后查看订单业务,还需要在这里封装订单完成页等等

封装登录页login.py

注意:这里的login.py和业务层action里的login.py不是一个py文件,这是对登录页元素的封装,相当于是对整个页面的具体封装文件
如果不明白,可以做个比较。
代码如下:

class LoginPage(BuyerPage):
    '''
    首页 元素进行操作
    定位元素   点击 输入操作 driver对象- driver.py 进行封装InitDriver类
    '''

    # def __init__(self,driver:InitDriver):
    #     # 后面很多方法都要用到这个driver,把他设置为属性
    #     self.driver = driver
    #     # 思路百度: 动态获取类名
    #     self.page_info = read_yaml('/pagefiles/buyer.yml').get('LoginPage')
    def username_login(self):
        ele_info = self.page_info.get('账号登录')
        self.driver.click(ele_info)

    def input_name(self, name):
        ele_info = self.page_info.get('输入用户名')
        self.driver.send_keys(ele_info, name)

    def input_password(self, password):
        ele_info = self.page_info.get('输入密码')
        self.driver.send_keys(ele_info, password)

    def input_valicode(self):
        ele_info = self.page_info.get('输入验证码')
        #这里把验证码写死了,真实环境中可以通过ddddocr来实现OCR识别获取验证码
        self.driver.send_keys(ele_info, '1512')

    def login_button(self):
        ele_info = self.page_info.get('点击登录按钮')
        self.driver.click(ele_info)

封装首页home_page.py

像淘宝或者京东这类的网上商城一样,首页有搜索框,登录,注册这类的按钮元素,业务场景中需要首页的哪些元素就对他进行响应的封装即可
在这里插入图片描述

在这里插入图片描述

class HomePage(BuyerPage):
    '''
    首页 元素进行操作
    定位元素   点击 输入操作 driver对象- driver.py 进行封装InitDriver类
    '''
    def login_link(self):
        # ele_info = {'type': name / xpath / id / css / classname / tagname / linktext / plinktext, 'value': 值}
        ele_info = self.page_info.get('登录链接')
        self.driver.click(ele_info)
        return LoginPage(self.driver)

    def perseon_center(self):
        ele_info = self.page_info.get('进入个人中心')
        self.driver.click(ele_info)
        return PersonCenterPage(self.driver)

    def input_search_text(self, text):
        ele_info = self.page_info.get('搜索框')
        self.driver.send_keys(ele_info, text)

    def click_search_btn(self):
        ele_info = self.page_info.get('搜索按钮')
        self.driver.click(ele_info)
        return SearchResultPage(self.driver)

封装个人中心页personcenter_page.py

一般都是登录之后会展示个人中心按钮
在这里插入图片描述
在这里插入图片描述

class PersonCenterPage(BuyerPage):

    def cllick_acceptaddress(self):
        # ele_info = {'type': name / xpath / id / css / classname / tagname / linktext / plinktext, 'value': 值}
        ele_info =self.page_info.get('收货地址菜单')
        self.driver.click(ele_info)
        return AcceptAddressPage(self.driver)

封装添加地址页add_adderss_page.py

添加收货地址需要用到收货人姓名、联系地址、收货区域、详细地址以及地址别名(设为默认可以暂时不用管),需要对这些元素一一封装,特别注意的是收货地址未选择下拉框,需要用到鼠标悬停的动作,如果网不好的话可以加死等(time.sleep())的方式解决
在这里插入图片描述

class AcceptAddressPage(BuyerPage):

    def add_address(self):
        # ele_info = {'type': name / xpath / id / css / classname / tagname / linktext / plinktext, 'value': 值}
        ele_info =self.page_info.get('添加地址')
        self.driver.click(ele_info)
    def acceptgoods_name(self,name):
        ele_info = self.page_info.get('收货人姓名')
        self.driver.send_keys(ele_info,name)
    def acceptgoods_tel(self,tel):
        ele_info = self.page_info.get('输入联系方式')
        self.driver.send_keys(ele_info, tel)
    def choose_receaddress(self,provice,city,area):
        ele_info=self.page_info.get('收货地区')
        # todo 鼠标悬浮-需要在driver.py进行增加
        # 省
        time.sleep(2)
        ele_info = {'name':'省','type':'linktext','value':provice}
        self.driver.click(ele_info)
        time.sleep(2)
        ele_info = {'name':'市','type':'linktext','value':city}
        self.driver.click(ele_info)
        time.sleep(2)
        ele_info = {'name':'区','type':'linktext','value':area}
        self.driver.click(ele_info)
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七光年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值