• 【Airtest】Airtest中swipe方法兼容不同分辨率的解决方法


    使用Airtest中swipe方法由于不同分辨率的手机上滑动的坐标位置不同,所以想要兼容所有的手机,仅仅靠固定坐标就会出现问题

    想要兼容所有的手机,可以按照如下思路进行

    1、首先获取手机的分辨率,可以使用Airtest中的poco模块的get_screen_size()方法

    poco.get_screen_size()

    此时获取到了手机的分辨率,可以看出屏幕宽等于900,长度等于1600

    2、将屏幕的宽度和长度分别赋值为x和y,注意屏幕左上角的坐标为(0,0),所以左下角的坐标为(0,1600),右上角的坐标为(900,0),右下角的坐标为(900,1600)

    xy = poco.get_screen_size()
    x = xy[0]
    y = xy[1]

    3、按照屏幕的比例进行滑动,我想要从屏幕的右侧向左侧滑动,就可以按照如下方法进行,从(0.9*x,0.5*y)的坐标移动到(0.1*x,0.5y)的坐标,也就是从(810,800)的坐标移动到(90,800)的坐标

    swipe((0.9*x,0.5*y),(0.1*x,0.5*y),duration=1)

    4、完整代码运行

    # -*- encoding=utf8 -*-
    __author__ = "fengruishou"
    
    from airtest.core.api import *
    
    
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    
    auto_setup(__file__)
    
    print(poco.get_screen_size())
    xy = poco.get_screen_size()
    x = xy[0]
    y = xy[1]
    swipe((0.9*x,0.5*y),(0.1*x,0.5*y),duration=1)

     

  • 相关阅读:
    开源高性能网络库Libevent的简介
    网络IO之阻塞、非阻塞、同步、异步总结【转】
    C语言20150620
    EF那点事
    SSO单点登录的实现原理是怎样的
    SQL索引器
    基础数学知识
    hibernate优化笔记(随时更新)
    JAVA中保留小数的多种方法
    Hibernate的session缓存和对象的四种状态
  • 原文地址:https://www.cnblogs.com/ffrs/p/11746175.html
Copyright © 2020-2023  润新知