框架综合实践(2)-公共模块Common的封装

公共类的思维导图如下:

common_fun.py用于封装公共模块,例如滑动引导页的模块、检测应用是否进入首页等

1.进入应用首页

通过判断首页的某个元素存在,来校验是否成功进入应用首页

2.定义获取屏幕大小函数

3.定义向左滑动的函数

4.定义获取系统时间的函数

5.定义屏幕截图函数

说明:

1.获取当前脚本所在的文件夹:t_path=os.path.dirname(__file__)

2.获取当前脚本所在文件夹的上一个文件夹:os.path.dirname(os.path.dirname(__file__))

3.进入同一目录下的另外一个文件夹:

os.path.dirname(os.path.dirname(__file__))+'/screenshots/%s_%s.png' %(module,time),其中%s_%s.png %(modele,time)表示以传入的模块和当前系统时间命名截图文件

完整的脚本:common_fun.py

前提:已有yaml、log.conf、desired_caps.py、baseView.py文件;common_fun.py继承baseView.py

#!urs/bin/python
#!_*_ coding:UTF-8 _*_
from baseView.baseView import BaseView
from common.desired_caps import appium_desired
from selenium.common.exceptions import NoSuchElementException
import logging
from selenium.webdriver.common.by import By
import time,os
#定义类
class Common(BaseView):
    image_button = (By.ID, "com.mydream.wifi:id/tvAsk")
    #定义判断已进入应用首页的函数
    def check_imagebutton(self):

        logging.info("========检测元素========")
        try:
            element=self.driver.find_elements(*self.image_button)
        except NoSuchElementException:
            logging.info("========元素不存在========")
        else:
           # element.click()
            logging.info("========元素存在========")
   #定义获取屏幕的方法
    def get_windows_size(self):
        logging.info("========获取屏幕大小========")
        x = self.driver.get_window_size()['height']  # 获取屏幕的高度
        y = self.driver.get_window_size()['width']  # 获取屏幕的宽度
        return (x, y)
    #定义向左滑动的方法
    def swipleft(self):
        logging.info("========滑动引导页========")
        gs = self.get_windows_size()
        x1 = int(gs[0] * 0.75)
        y1 = int(gs[1] * 0.5)
        x2 = int(gs[0] * 0.25)
        self.driver.swipe(x1, y1, x2, y1, 1000)
    #返回以可读字符串表示的当地时间,并设置好返回的格式
    def getTime(self):
        self.now = time.strftime("%Y-%m-%d %H_%M_%S")
        return self.now
    #定义屏幕截图的方法
    def getScreenShot(self,module):
        time=self.getTime()
        t_path=os.path.dirname(__file__)
        image_file=os.path.dirname(os.path.dirname(__file__))+'/screenshots/%s_%s.png' %(module,time)
        logging.info('get %s screenshot' %module)
        self.driver.get_screenshot_as_file(image_file)
        logging.info("=======首页截图成功=======")
if __name__ == '__main__':
    #定义driver初始化
    driver=appium_desired()
    com=Common(driver)
    com.check_imagebutton()
    #com.swipleft()
    #调用截图,传入具体的模块名称
    com.getScreenShot("star APP")



 

运行后的日志如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
 课程目标:你将对研发框架的代码封装和开发规范制定的底实现逻辑有所掌握,并形成自己的开发封装套路,告别CRUD课程简介:   1. 课程背景: 能帮你解决什么问题?企业中通常由架构师搭建好开发框架,里面包含了很多封装好的基础结构,日志规范以及响应的异常统一处理,还有相应的参数校验等。很多初中高级开发工程师没有机会接触这部分代码的逻辑,而这部分代码逻辑又是非线性的,单纯看代码逻辑是看不出来执行顺序的,需要大量调试总结。不像mvc代码结构,你知道从Controller看到Service再到Dao,而这样底的基础性代码则像积木,不熟悉的前提下需要一块块的插入拔出,不断总结,而沿着本课程的顺序梳理与实战你将会豁然开朗。市面上的大多文章结构较散,并且处理不够全面,比如返回结构通常是 具体的正例与反例日志统一处理 统一异常处理及特殊的情况处理 参数优雅校验 1基础的校验 2. 自定义校验 3.分组校验最重要的是给大家捋顺了一个清晰的实现结构以上在我们后面章节Spring Boot HelloWorld的至少10个可扩展点里有更多的相关介绍,在核心章节里有更细致的讲解实现。理解框架升级底逻辑: 全网首套基于Spring Boot 3.x+Java 17开发系列 SpringBoot3的升级背景和路线逻辑掌握代码重构及编码效率提升技巧学习基于最为前沿的Spring Boot 3.x 和 Java 17 开发代码依赖于Spring Boot 3.x Java 17环境开发穿插相应新版本的变化讲解可编写完成一个生产级开发规范框架的制定 包含不限于 统一响应结构统一异常处理基于ThreadLocal处理请求RequestId基于日志框架的MDC 统一记录日志统一状态码处理Filter中的异常及状态码处理,以及日志的完整性处理自定义优雅参数校验学习源码剖析方式方法等等 3. 课程规划1.  课程章节规划 2. 讲课方式代码实战为主+图文演示为辅例如说明后端校验的重要性 以一张图清晰明了的展示说明解答了为何前端有了前端校验还要后端校验的问题 3. 特别说明本课程所有代码使用版本会随着Spring Boot 3.x的开发进度而更新,直到Spring Boot 3.x的正式版本发布,可放心食用本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点, 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的产品课程。本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护) 常见问题:问:是否讲解Java17和SpringBoot3新特性答:本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点是框架基础规范编码实战 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的讲解课程。问:代码仅限于SpringBoot3吗? SpringBoot2和SpringBoot1是否适用?答:本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护)。另外本课程重点讲解代码封装和底实现逻辑和具体API版本关联不大,只是基于最新的SpringBoot3和Java17实现而已,请放心使用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Miss糖豆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值