zoukankan      html  css  js  c++  java
  • 【转】使用python实现appium的屏幕滑动

    前些日子写一个滑动手机页面的小脚本,看到大家给的内容都是swipe方法,这里对swipe方法做一个小介绍:

    Swipe(int start x,int start y,int end x,int y,duration)

    解释:int start x-开始滑动的x坐标,

      int start y -开始滑动的y坐标。

       int end x -结束点x坐标,

       int end y -结束点y坐标。

       duration 滑动时间(默认5毫秒);

    由于swipe方法需要制定的是坐标,但是由于每个手机的分辨率不同,如果我们指定了一个固定的坐标,在其他手机上也不一定能适用,所以最好的办法就是通过获取手机屏幕的坐标来滑动,

    这样可以增加代码的复用性。

    以下是我的python代码:

    dr=webdriver.Remote("http://localhost:4725/wd/hub",desired_cups)
    复制代码
    #获得机器屏幕大小x,y
    def getSize():
        x = dr.get_window_size()['width']
        y = dr.get_window_size()['height']
        return (x, y)
    
    #屏幕向上滑动
    def swipeUp(t):
        l = getSize()
        x1 = int(l[0] * 0.5)    #x坐标
        y1 = int(l[1] * 0.75)   #起始y坐标
        y2 = int(l[1] * 0.25)   #终点y坐标
        dr.swipe(x1, y1, x1, y2,t)
    复制代码

    简单解释一下:

    下图是屏幕的坐标图,向上滑动屏幕就是x轴不变,y轴由大到小的变化过程

    以下我将向上滑动、向下滑动、向左滑动和向右滑动整理了一下,并且实现他们的调用:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    #获得机器屏幕大小x,y
    def getSize():
        = dr.get_window_size()['width']
        = dr.get_window_size()['height']
        return (x, y)
     
    #屏幕向上滑动
    def swipeUp(t):
        = getSize()
        x1 = int(l[0* 0.5)  #x坐标
        y1 = int(l[1* 0.75)   #起始y坐标
        y2 = int(l[1* 0.25)   #终点y坐标
        dr.swipe(x1, y1, x1, y2,t)
    #屏幕向下滑动
    def swipeDown(t):
        = getSize()
        x1 = int(l[0* 0.5)  #x坐标
        y1 = int(l[1* 0.25)   #起始y坐标
        y2 = int(l[1* 0.75)   #终点y坐标
        dr.swipe(x1, y1, x1, y2,t)
    #屏幕向左滑动
    def swipLeft(t):
        l=getSize()
        x1=int(l[0]*0.75)
        y1=int(l[1]*0.5)
        x2=int(l[0]*0.05)
        dr.swipe(x1,y1,x2,y1,t)
    #屏幕向右滑动
    def swipRight(t):
        l=getSize()
        x1=int(l[0]*0.05)
        y1=int(l[1]*0.5)
        x2=int(l[0]*0.75)
        dr.swipe(x1,y1,x2,y1,t)
    #调用向左滑动
    swipLeft(1000)
    sleep(3)
    #调用向右滑动
    swipRight(1000)
    调用向上滑动
    swipeUp(1000)
    调用向下滑动
    swipeDown(1000)

    分享完毕,希望能对大家有所帮助!

  • 相关阅读:
    js递归函数和call()
    前端常用
    整理项目中用到的angularjs及其他js代码
    体验设计真的是让一切简单到极致吗?
    iview table中利用render动态循环输出
    Vue+iview在render函数中添加Poptip提示操作
    jQuery
    外部js调用vue实例方法
    es6 filter() 数组过滤方法总结
    vue通信、传值的多种方式
  • 原文地址:https://www.cnblogs.com/beiyue/p/10207699.html
Copyright © 2011-2022 走看看