• 0
  • 0
分享
  • Appium综合实践(2)--公共模块Common的封装
  • 豆秸 2022-07-11 09:03:31 字数 2358 阅读 1657 收藏 0

公共类的思维导图如下:

投21.png

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

1.进入应用首页

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

投22.png

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

投23.png

3.定义向左滑动的函数

投24.png

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

投25.png

5.定义屏幕截图函数

投26.png

说明:

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")

运行后的日志如下:

投27.png


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   网关是指内部服务和第三方外部服务交互的接口,常见的网关有通过渠道引入外部用户的通用网关、和支付商户对接的支付网关、获取第三方数据的数据网关等(一种是我们提供给第三方调用,一种是去调用第三方,这里重点讨论第二种)。  因为网关接口需要依赖第三方响应的结果,而不管我们请求参数如何,第三方测试环境响应结果基本固定,不一定会出现我们想要的情况。  还有一种情况是测试账号的原因,比如缺少有效的信用卡号、有流水记录的淘宝卖家账号等,导致我们使用的测试账号只能覆盖单一的情况。  虽然对网关来说大部分时候只要能和第三方调通就可以,但是线上情况不可控,只验证正常情况当然不够严谨,需要确保各种可能出现的异常情...
            0 0 1068
            分享
          •   自动化听起来很美,但实践并不容易,许多人将其视为实际结果与需求中提供的预期结果的比较,甚至认为自动化就是一系列重复和可重复的操作。如果仅仅停留在这些肤浅的理解往往会导致自动化测试的失败。  下面我从多个角度探讨测试自动化问题,并提出了一些需要关注的主要因素:工具和技术、需求和风险、维护和安全。  工具和技术  软件测试发展至今,市面上已经有很多商业、免费和开源的测试工具。选择哪种工具取决于对产品当前形态的支持程度以及对产品未来演进持续的支持程度。  除了使用现成的自动化工具,也可以选择自研测试工具。而使用哪种技术实现自动化工具就至关重要。例如,Selenium的早期版本还不支持处理浏览器弹...
            0 0 1001
            分享
          •   7 月 7 日晚,@懂车帝辟谣 官方微博发布首条消息,网传“懂车帝举办改装车大会被一锅端了”为谣言。  网传视频显示,一群人在地下车库中聚集,视频中确实出现了懂车帝标志的标牌。  IT之家注意到,懂车帝公告称,该活动系主办方自行组织的车友聚会活动,与懂车帝无关。现场围挡上带懂车帝品牌内容的物料为此前活动遗留,事发后被用来维护现场秩序,与本次活动无关。作者:汪淼原文链接:IT之家(ithome.com)
            0 0 495
            分享
          • 软件自动化测试,个人觉得由于名字里面有个“Auto”,给人的感觉神秘又高深。软件行业似乎对自动化测试也有神化的倾向。实际上真正做过自动化测试的同学,我指的是对自动化测试有过一定思考的同学,对自动化的看法还是很现实的。我做自动化时间不长,大概有两年的时间,我很负责任的说,自动化其实也是一个坑。然而是火坑还是萝卜坑,与软件开发或是手工测试比是深还是浅?仁者见仁吧,我的看法:自动化不会解决所有问题,但是绝对值得拥有!自动化测试其实就是通过自动化工具执行定制好的测试脚本,可以节省人力和时间成本,提高测试效率。但自动化测试不是并不能完全代替人工测试。自动化测试能解决很多问题,同时也带来很多问题。下面是我...
            0 0 1804
            分享
          • 到处都在说2019年是互联网寒冬,今年确实人员流动,招聘需求没有往事行情好。所以今年换工作的时候,也不太如意,要么就是没有面试机会,要么就是面试总通不过。有的同学或朋友找工作都找的要发狂了,而今年我也加入了换工作的大军中,通过两周的面试,也应聘了几家公司,并找到了满意的工作,因此我们也借机讨论一下我了解到的情况。先分析一下今年的就业形势,无论做任何事情都要做到知已知彼,才会百战百胜嘛!一、人员流动小,公司需求不强在18年最后一个季度,到处都在传互联网寒冬,不少公司裁员的消息。这就会让本来有换工作打算的同学多考虑一下,工资没有提升,绩效打的差,没有关系,忍一忍先在这个岗位上过个冬再说。鉴于行情不...
            0 0 975
            分享
      • 51testing软件测试圈微信