swipe 介绍
1. 查看源码语法, 起点和终点四个坐标参数, duration 是滑动屏幕持续的时间, 时间越短速度越快. 默认为 None 可不填, 一般设置 500-1000 毫秒比较合适.
- swipe(self, start_x, start_y, end_x, end_y, duration=None)
- Swipe from one point to another point, for an optional duration.
从一个点滑动到另外一个点, duration 是持续时间
:Args:
- start_x - 开始滑动的 x 坐标
- start_y - 开始滑动的 y 坐标
- end_x - 结束点 x 坐标
- end_y - 结束点 y 坐标
- duration - 持续时间, 单位毫秒
- :Usage:
- driver.swipe(100, 100, 100, 400)
2. 手机从左上角开始为 0, 横着的是 x 轴, 竖着的是 y 轴
获取坐标
1. 由于每个手机屏幕的分辨率不一样, 所以同一个元素在不同手机上的坐标也是不一样的, 滑动的时候坐标不能写死了. 可以先获取屏幕的宽和高, 再通过比例去计算.
- # coding:utf-8
- from appium import webdriver
- desired_caps = {
- 'platformName': 'Android',
- 'deviceName': '30d4e606',
- 'platformVersion': '4.4.2',
- # apk 包名
- 'appPackage': 'com.taobao.taobao',
- # apk 的 launcherActivity
- 'appActivity': 'com.taobao.tao.welcome.Welcome'
- }
- driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
- # 获取屏幕的 size
- size = driver.get_window_size()
- print(size)
- # 屏幕宽度 width
- print(size['width'])
- # 屏幕高度 width
- print(size['height'])
2. 运行结果:
- {
- u'width': 720, u'height': 1280
- }
- 720
- 1280
封装滑动方法
1. 把上下左右四种常用的滑动方法封装, 这样以后想滑动屏幕时候就能直接调用了
参数 1:driver
参数 2:t 是持续时间
参数 3: 滑动次数
2. 案例参考
- # coding:utf-8
- from appium import webdriver
- from time import sleep
- desired_caps = {
- 'platformName': 'Android',
- 'deviceName': '30d4e606',
- 'platformVersion': '4.4.2',
- # apk 包名
- 'appPackage': 'com.taobao.taobao',
- # apk 的 launcherActivity
- 'appActivity': 'com.taobao.tao.welcome.Welcome'
- }
- driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
- def swipeUp(driver, t=500, n=1):
- '''向上滑动屏幕'''
- l = driver.get_window_size()
- x1 = l['width'] * 0.5 # x 坐标
- y1 = l['height'] * 0.75 # 起始 y 坐标
- y2 = l['height'] * 0.25 # 终点 y 坐标
- for i in range(n):
- driver.swipe(x1, y1, x1, y2, t)
- def swipeDown(driver, t=500, n=1):
- '''向下滑动屏幕'''
- l = driver.get_window_size()
- x1 = l['width'] * 0.5 # x 坐标
- y1 = l['height'] * 0.25 # 起始 y 坐标
- y2 = l['height'] * 0.75 # 终点 y 坐标
- for i in range(n):
- driver.swipe(x1, y1, x1, y2,t)
- def swipLeft(driver, t=500, n=1):
- '''向左滑动屏幕'''
- l = driver.get_window_size()
- x1 = l['width'] * 0.75
- y1 = l['height'] * 0.5
- x2 = l['width'] * 0.25
- for i in range(n):
- driver.swipe(x1, y1, x2, y1, t)
- def swipRight(driver, t=500, n=1):
- '''向右滑动屏幕'''
- l = driver.get_window_size()
- x1 = l['width'] * 0.25
- y1 = l['height'] * 0.5
- x2 = l['width'] * 0.75
- for i in range(n):
- driver.swipe(x1, y1, x2, y1, t)
- if __name__ == "__main__":
- print(driver.get_window_size())
- sleep(5)
- swipLeft(driver, n=2)
- sleep(2)
- swipRight(driver, n=2)
来源: http://www.bubuko.com/infodetail-3053554.html