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 坐标不变