Selenium之Page Object Model 设计理念 ------yaml管理数据

在我们学习selenium的po模式之前,我们先要了解什么是自动化测试,以及selenium中的八大定位的基本操作,那么接下来,您可以跟我一起走进po模式中的yaml管理数据

引言

yaml管理数据的好处

数据清晰明了,操作简单,且与python语法规格比较接近(严格的缩进要求,不允许使用tab键对其元素),只要是左对齐的一列数据,都是同一个层级的,用-表示这是一个连续的项目

Yaml文件的具体编写

编写yaml文件前提:

1、已经在Base页中封装好了基础Api

2、在Common页写好了读取yaml数据的方法,且yaml模块已经装好

3、创建一个yaml文件(这里还是做登录的用例,所以我创建的是Login.yaml)

步骤

<1>在Data目录下(也就是之前创好的项目)创建一个html文件,把他重命名为Login.yaml,并把有关html文件中的内容删除
在这里插入图片描述

<2>现在我们对yaml文件进行编写

在这里插入图片描述
变量介绍:

Login : 表示这是一个登录的yaml文件
title: yaml的标题,可以根据项目来命名
content: 内容,也就是我们存放的定位数据
name: 描述这是一个什么定位元素,干什么
type: 什么类型,比如id、name
value: 定位信息

有的人肯定会好奇,为什么回事小写的id、name,为什么class name 中间要有一个空格?

因为我们打印By的方式是这样的

在这里插入图片描述

这下就比较清晰了把

那么我们这次来在Page页中调用

from Page_Object_Model.Base.Base_Page import Base  # 导入Base类
from selenium.webdriver.common.by import By  # 导入By方法
from Page_Object_Model.Common.common import Common  #导入公用方法
data = Common().Readyaml()['Login']['content']  # 具体拿到yaml数据(这里拿到的是Login页)
class Logins(Base): # 继承Base页中的Base类
    def __init__(self,driver,url):  # 初始化方法
        Base.__init__(self,driver,url)  # 重写父类方法,这里不做改变

    def click_login(self):  #点击一号店最上方的登录
        self.click_element(data[0]['type'],data[0]['value'])  
        # 在这里我们把原先的by方式替换为这样,读取拿到的yaml数据中用下标取值的方式来实现操作

    def input_username(self,text):  #输入账号
        self.input_text(text,data[1]['type'],data[1]['value'])

    def input_pwd(self,text):  #输入密码
        self.input_text(text,data[2]['type'],data[2]['value'])

    def click_end_login(self):  # 点击登录
        self.click_element(data[3]['type'],data[3]['value'])

    def get_logins(self):  #获取登录后的文本信息
        return self.get_text(data[4]['type'],data[4]['value'])

Case页不需要改变,最后我们Run一下

copy下脚本的path,然后到Run执行方法中选择python

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
控制台执行结果:
在这里插入图片描述

HTML报告结果:

在这里插入图片描述
然后我们copy下html的路径到浏览器中查看结果

在这里插入图片描述

在这里插入图片描述

如有问题,博客下方留言

  • 30
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 27
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值