【轉】使用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 )

分享完畢,希望能對大家有所幫助!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM