appium对手机屏幕上下左右滑动操作。

在我们进行appium自动化测试的过程中上下左右滑动屏幕时在所难免的。今天博主就分享一下在appium自动化测试场景中使用率超高的划动屏幕的操作吧。

前置条件:1.手机已经使用usb连接手机。 2.打开appium-desktop待测手机应用页面已经打开。 3.python通过appium模块可以正常打开链接手机

其实呢我们的手机页面有x,y坐标的一个概念,页面的左上角就是(0,0)点,其实呢我们在页面上定位的所有元素都有一个开始坐标和结束坐标。用appium-desktop定位元素的小伙伴可以能发现每个元素都有一个bounds属性,它就值就是元素的开始坐标与结束坐标。

我们的页面上任意的点呢其实也都是无数的元素组成的,我们对于页面滑动操作呢其实也就是从这个点移动到另一个点而已,这里姑且我们先定义两个点(x1,y1)(x2,y2)上下滑动呢固定x坐标y坐标变动,左右滑动y坐标固定x坐标变动,其实原理还是很简单的。下面上代码吧,看如何实现的。

因为不同手机的屏幕尺寸是不一样的,首页我们先用get_window_size函数获取手机屏幕尺寸。

    def get_size(self):  #获取屏幕尺寸
        x = self.driver.get_window_size()['width']
        y = self.driver.get_window_size()['height']
        return x , y

下面是向下滑动向下滑动呢x轴保持不变,y轴改变。最后最好等待1s不等待的话页面可能刷不过来的

'''向下滑动'''
    def swipleft(self):
        sleep(3)
        l = self.get_size()
        x1 = int(l[0]*0.3)
        y1 = int(l[0]*0.73)
        y2 = int(l[0]*0.25)
        x2 = int(l[0]*0.3)
        self.driver.swipe(x1,y1,x2,y2,1000)
        sleep(1)

连续向下滑动可以用for循环实现。

    def down(self):
        sleep(3)
        left = random.randint(1, 10)
        for i in range(left):
            self.swipleft()
            sleep(1)

向上滑动的操作呢就是使Y1小于y2就好,其余不用改变,

向左滑动。

 def swip_left(self):
        sleep(3)
        l = self.get_size()
        x1 = int(l[0]*0.75)
        x2 = int(l[0]*0.25)
        y1 = int(l[0]*0.3)
        y2 = int(l[0]*0.3)
        self.driver.swipe(x1,x2,y1,y2,1000)
        sleep(1)

向右滑动的方法同理,调转x1,x2的大小即可。

我们也可以通过坐标进行页面的点击,有时候我们在操作H5元素的可以会用到,网上也有很多关于坐标点击页面元素的方法,博主也看了很多但发现很多都说错误的,博主这里分享一下正确的写法。

from appium.webdriver.common.touch_action import TouchAction

    def taphit(self):
        sleep(3)
        TouchAction(self.driver).tap(x=474,y=2131).perform()
        sleep(1)

当中的(x,y)就是要定位的坐标啦。大家可以将其设置为变量。

后续呢还会跟大家分享很多实用的自动化测试的技巧,有兴趣的可以关注留言啊hhhhh

Guess you like

Origin blog.csdn.net/HUJIANLAILE/article/details/111826997