Appium之封装屏幕滑动对象

 

swipe介绍

swipe函数可用于滑动屏幕,参数包括起点、终点坐标、滑动屏幕的持续时间。函数原型如下:

swipe(start_x, start_y, end_x, end_y, duration=None)

注意:手机从左上角开始为0.0 , 横着的是x轴,竖着的是y轴。

思路:先获取手机屏幕的宽和高,再自定义比例系数。

 

实践操作:

打开“小猿搜题app”,点击跳转至“猿辅导”页面,再执行向上、向下、向左、向右滑动。

# SwipeObj.py

class SwipeMethod():
    '''封装包含向上、向下、向左、向右滑动的对象'''

    def __init__(self, driver):
        self.driver = driver
        self.size = self.driver.get_window_size()  # 获取当前window的 width 和 height
        print("width", self.size['width'])
        print("height", self.size['height'])

    def swipeUp(self, t=500, n=1):
        '''封装向上滑动的函数'''
        x1 = self.size['width'] * 0.5  # 设置x1起始和终点坐标,系数0.5可自适应设置
        y1 = self.size['height'] * 0.75  # 设置y1起始坐标,系数0.75可自适应设置
        y2 = self.size['height'] * 0.2  # 设置y2终点坐标,系数0.2可自适应设置
        for i in range(n):
            self.driver.swipe(x1, y1, x1, y2, t)

    def swipeDown(self, t=500, n=1):
        '''封装向下滑动的函数'''
        x1 = self.size['width'] * 0.5  # 设置x1起始和终点坐标,系数可自适应设置
        y1 = self.size['height'] * 0.25  # 设置y1起始坐标,系数可自适应设置
        y2 = self.size['height'] * 0.7  # 设置y2终点坐标,系数可自适应设置
        for i in range(n):
            self.driver.swipe(x1, y1, x1, y2, t)

    def swipeLeft(self, t=500, n=1):
        '''封装向左滑动的函数'''
        x1 = self.size['width'] * 0.75  # 设置x1起始坐标,系数可自适应设置
        x2 = self.size['width'] * 0.2  # 设置x2终点坐标,系数可自适应设置
        y1 = self.size['height'] * 0.5  # 设置y1起始和终点坐标,系数可自适应设置
        for i in range(n):
            self.driver.swipe(x1, y1, x2, y1, t)

    def swipeRight(self, t=500, n=1):
        '''封装向右滑动的函数'''
        x1 = self.size['width'] * 0.2  # 设置x1起始坐标,系数可自适应设置
        x2 = self.size['width'] * 0.75  # 设置x2终点坐标,系数可自适应设置
        y1 = self.size['height'] * 0.5  # 设置y1起始和终点坐标,系数可自适应设置
        for i in range(n):
            self.driver.swipe(x1, y1, x2, y1, t)

if __name__ == "__main__":
    pass
# startApp.py

from appium import webdriver
from SwipeObj import SwipeMethod
from time import sleep

desired_caps = {
    'autoLaunch': 'False',
    'deviceName': 'honor10',
    'platformName': 'Android',
    'platformVersion': '10.0',
    'appPackage': 'com.fenbi.android.solar',
    'appActivity': 'com.fenbi.android.solar.activity.RouterActivity',
    'noReset': 'True',
}
driver = webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps)

class SwipeTest():
    '''初始化对象'''
    def __init__(self, driver):
        self.driver = driver
        self.driver.launch_app()    # 设置启动app
        self.swipe = SwipeMethod(self.driver)

    def swipeTest(self):
        self.driver.find_element_by_id("com.fenbi.android.solar:id/tutor_tab_text").click()     # 点击跳转至【猿辅导】
        sleep(2)
        self.swipe.swipeUp()
        sleep(3)
        self.swipe.swipeDown()
        sleep(3)
        self.swipe.swipeLeft()
        sleep(3)
        self.swipe.swipeRight()
        sleep(3)

if __name__ =="__main__":
    swipe = SwipeTest(driver)
    swipe.swipeTest()

 

参考:https://www.cnblogs.com/yoyoketang/p/7766878.html

 

posted @ 2020-09-14 16:06  Maruying  阅读(195)  评论(0编辑  收藏  举报