Python實現螢幕滑動
Java實現Appium螢幕滑動
下圖是螢幕的座標圖,向上滑動螢幕就是x軸不變,y軸由大到小的變化過程
Java滑動操作,通常可以直接使用API中AndroidDriver類中的swipe方法,直接進行呼叫
swipe(int startx, int starty, int endx, intendy, int duration)
引數說明:
intstartx:x起始座標
intstarty:y起始座標
intendx:x終點座標
intendy:y終點座標
intduration:滑動速度,預設單位:毫秒。數字越小滑動越快,一般設定在500 ~ 1000
num:滑動次數,直接輸入次數就可以了
由於螢幕各式各樣,滑動的結束位置均不太好掌控,因此,為了方便,可以將swipe方法進行如下改善
1.不可配置滑動次數:
//向上滑動
publicvoid swipeToUp(AndroidDriver<AndroidElement>driver, int during){
int width = driver.manage().window().getSize().width; //獲取當前螢幕的寬度
int height = driver.manage().window().getSize().height; //獲取當前螢幕的高度
driver.swipe(width/2, height*3/4, width/2, height/4, during)
}
// driver(就是把appiumdriver物件傳進來)
2.可配置滑動次數:
//向下滑動
publicvoid swipeToDown (AndroidDriver<AndroidElement>,int during, int num){
int width = driver.get.window().getSize().width; //獲取當前螢幕的寬度
int height = driver.get.window.().getSize().height; //獲取當前螢幕的高度
for(i =0; i <num; i++){
driver.swipe(width/2, height*/4, width/2, height*3/4, during);
}
}
3.向左滑動
publicstatic void swipeToLeft(AppiumDriver<WebElement> driver,int during, intnum) {
intwidth = driver.manage().window().getSize().width; //獲取當前螢幕的寬度
intheight = driver.manage().window().getSize().height; //獲取當前螢幕的高度
for(int i = 0; i < num; i++) {
driver.swipe(width* 3 / 4, height / 2, width / 4, height / 2, during);
}
}
4.向右滑動
public static void swipeToRight(AppiumDriver<WebElement>driver,int during, int num) {
intwidth = driver.manage().window().getSize().width; //獲取當前螢幕的寬度
intheight = driver.manage().window().getSize().height; //獲取當前螢幕的高度
for(int i = 0; i < num; i++) {
driver.swipe(width/ 4, height / 2, width * 3 / 4, height / 2, during);
}
}
注:y1=getSize()[1]*0.5=可以理解為y軸的最中央,x1=getSize()[0]*0.75=x軸靠右
x2=getSize()[0]*0.05=x軸靠左
python實現Appium螢幕滑動
呼叫swipe方法實現螢幕滑動
Swipe(int start x,int starty,int end x,int y,duration)
引數說明:
intstart x-開始滑動的x座標,
intstart y -開始滑動的y座標。
intend x -結束點x座標,
intend y -結束點y座標。
duration 滑動時間(預設5毫秒)
實現程式碼:
#獲得機器螢幕大小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)
滑動座標變化
向上滑(swipeToUp):x 座標不變,y 座標由大到小
向下滑(swipeToDown):x 座標不變,y 座標由小到大
向左滑(swipeToLeft):x 座標由大到小,y 座標不變
向右滑(swipeToRight):x 座標由小到大,y 座標不變