前些日子寫一個滑動手機頁面的小腳本,看到大家給的內容都是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():
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)
#屏幕向下滑動
def
swipeDown(t):
l
=
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
)
|
分享完畢,希望能對大家有所幫助!