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)
     1 #获得机器屏幕大小x,y
     2 def getSize():
     3     x = dr.get_window_size()['width']
     4     y = dr.get_window_size()['height']
     5     return (x, y)
     6 
     7 #屏幕向上滑动
     8 def swipeUp(t):
     9     l = getSize()
    10     x1 = int(l[0] * 0.5)    #x坐标
    11     y1 = int(l[1] * 0.75)   #起始y坐标
    12     y2 = int(l[1] * 0.25)   #终点y坐标
    13     dr.swipe(x1, y1, x1, y2,t)

    简单解释一下:

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

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

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

    原文地址:http://www.cnblogs.com/testhub/p/5949668.html

       
  • 相关阅读:
    怎么判断自己在不在一家好公司?
    超全!互联网大厂的薪资和职级一览
    Nginx 又一牛 X 功能!流量拷贝
    时间管理之四象限法则
    罗永浩一个坑位卖60万脏钱背后:放下面子赚钱,才是成年人最大的体面
    2020 年 4月全国程序员工资出炉
    一次 SQL 查询优化原理分析(900W+ 数据,从 17s 到 300ms)
    “Hey Siri” 背后的黑科技大揭秘!
    一文讲透高薪的本质!
    python UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 87: illegal multibyte sequence异常解决
  • 原文地址:https://www.cnblogs.com/yunman/p/6201448.html
Copyright © 2011-2022 走看看