app屏幕滑动定位(swipe方法)
swipe语法:
Swipe(int start x,int start y,int end x,int y,time)#参数的个数根据实际情况使用
解释:
int start x-开始滑动的x坐标,
int start y -开始滑动的y坐标。
int end x -结束点x坐标,
int end y -结束点y坐标。
time 滑动时间(默认5毫秒)
给swipe指定坐标,因为每个手机的屏幕分辨率不一样,指定一个固定的坐标,并不是适用所有手机,所以这里可以通过获取手机屏幕坐标实现,提升代码重用。
python-appium手机自动测试如何实现滑动呢,在webdriver 的api中只提供了指定两个坐标的滑动,但不同的手机分辨率不同,这样写出来的自动化脚本兼容性就不是那么好了。。那么怎么实现滑动呢,仔细看了下webdriber中的方法,发现有个方法get_window_size() ,这个方法可以获得手机的宽度和高度,这样我们就可以实现按屏幕比率滑动了。。具体方法如下:
首先我们给定固定三个参数:0.5 0.25 0.75,(参数合理就好)因为不管向上向下还是向左向右滑,他们的参数都在由大到小变化或者由小到大的变化
理解下下面的图:
1、屏幕的坐标图,向上滑动屏幕就是x轴不变,y轴由大到小的变化过程:图来解释,这个时候屏幕坐标肯定是比原来屏幕1,3坐标小,因为屏幕在往上滑
2、屏幕的坐标图,向下滑动屏幕就是x轴不变,y轴由小到大的变化过程
3、屏幕的坐标图,向左滑动屏幕就是y轴不变,x轴由大到小的变化过程
4、屏幕的坐标图,向右滑动屏幕就是y轴不变,x轴由小到大的变化过程
图的理解:当前屏幕的参数跟着当前滑动屏幕的参数走,在屏幕滑动时在屏幕上下选个参考物做讲解
来区分上下滑
源码如下:
#defgetSize():获取机器屏幕大小
#defswipeup(t):屏幕向上滑动,x1为x轴坐标,y1起始的y轴坐标,y2结束的y轴坐标
# x1 =int(l[0] *0.5):l是上面函数中返回的屏幕大小,0和1其实是索引位,0代表x值,1代表y的值
defgetSize():
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return(x, y)
#屏幕向上滑动(代码里把注释去掉)
defswipeup(t):
l = getSize()
x1 =int(l[0] *0.5)
y1 =int(l[1] *0.75)
y2 =int(l[1] *0.25)
driver.swipe(x1, y1, x1, y2, t)
sleep(6)
swipeup(1000)
#屏幕向下滑动
defswipedown(t):
l = getSize()
x1 =int(l[0] *0.5)
y1 =int(l[1] *0.25)
y2 =int(l[1] *0.75)
driver.swipe(x2, y1, x1, y1, t)
sleep(6)
swipedown(1000)
#屏幕向左滑动
def swipLeft(t):
l=getSize()
x1=int(l[0]*0.75)
y1=int(l[1]*0.5)
x2=int(l[0]*0.25)
driver.swipe(x1,y1,x2,y1,t)
#屏幕向右滑动
def swipRight(t):
l=getSize()
x1=int(l[0]*0.25)
y1=int(l[1]*0.5)
x2=int(l[0]*0.75)
driver.swipe(x2,y1,x1,y1,t)