Python+Appium自动化之swipe()滑动页面

2020-09-07  本文已影响0人  给你一页白纸

app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑、下滑、左滑、右滑操作。

swipe()方法的参数说明:
start_x:起始横坐标
start_y:起始纵坐标
end_x:结束时横坐标
end_y:结束时纵坐标
duration:滑动持续时间,单位毫秒,默认None(一般设置500-1000毫秒比较合适)

# 屏幕宽
width = driver.get_window_size()['width']
# 屏幕高
height = driver.get_window_size()['heigth']
# 屏幕从下向上滑动
driver.swipe(width*0.5, height*0.9, width*0.5, height*0.1, 1000)
# 屏幕从上向下滑动
driver.swipe(width*0.5, height*0.1, width*0.5, height*0.9, 1000)
# 屏幕从左向右滑动
driver.swipe(width*0.1, height*0.5, width*0.9, height*0.5, 1000)
# 屏幕从右向左滑动
driver.swipe(width*0.9, height*0.5, width*0.1, height*0.5, 1000)
# project/common/baseOpera.py

class BaseOpera(object):
    '''
    基础操作
    '''
    def __init__(self, driver):
        self.driver = driver
        self.duration = 1000

    @property
    def width(self):
        '''获取屏幕宽度'''
        return self.driver.get_window_size()['width']

    @property
    def height(self):
        '''获取屏幕高度'''
        return self.driver.get_window_size()['height']

    def swipe_to_left(self, base=0.1):
        '''从右向左滑动'''
        return self.driver.swipe(self.width*(1-base),
                                    self.height*0.5,
                                    self.width*base,
                                    self.height*0.5,
                                    self.duration
                                    )

    def swipe_to_right(self, base=0.1):
        '''从左向右滑动'''
        return self.driver.swipe(self.width*base,
                                    self.height*0.5,
                                    self.width*(1-base),
                                    self.height*0.5,
                                    self.duration
                                    )

    def swipe_to_top(self, base=0.9):
        '''从下向上滑动'''
        return self.driver.swipe(self.width*0.5,
                                    self.height*base,
                                    self.width*0.5,
                                    self.height*(1-base),
                                    self.duration
                                    )

    def swipe_to_bottom(self, base=0.9):
        '''从上向下滑动'''
        return self.driver.swipe(self.width*0.5,
                                    self.height*(1-base),
                                    self.width*0.5,
                                    self.height*base,
                                    self.duration
                                    )

调用baseOpera.py模块中的滑动方法,向上滑动查看今日头条首页新闻,简单示意如下:

from appium import webdriver
from common.baseOpera import BaseOpera

def android_driver():
    desired_caps = {
        "platformName": "Android",
        "platformVersion": "10",
        "deviceName": "PCT_AL10",
        "appPackage": "com.ss.android.article.news",
        "appActivity": ".activity.MainActivity",
        "automationName": "uiautomator2",
        "unicodeKeyboard": True,
        "resetKeyboard": True,
    }
    # 启动app
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    return driver

def watch_news():
    # 向上滑动今日头条首页
    driver = android_driver()
    bo = BaseOpera(driver)
    bo.swipe_to_top()

if __name__ == '__main__':
    watch_new()
上一篇 下一篇

猜你喜欢

热点阅读