使用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

   
posted @ 2016-12-20 09:47  YunMan  阅读(6035)  评论(0编辑  收藏  举报