appium+python自动化24-滑动方法封装(swipe)

bjwendy 2018-07-31

swipe介绍

1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快。默认为None可不填,一般设置500-1000毫秒比较合适。


  1. swipe(self, start_x, start_y, end_x, end_y, duration=None)
  2. Swipe from one point to another point, for an optional duration.
  3. 从一个点滑动到另外一个点,duration是持续时间
  4. :Args:
  5. - start_x - 开始滑动的x坐标
  6. - start_y - 开始滑动的y坐标
  7. - end_x - 结束点x坐标
  8. - end_y - 结束点y坐标
  9. - duration - 持续时间,单位毫秒
  10. :Usage:
  11. driver.swipe(100, 100, 100, 400)

2.手机从左上角开始为0,横着的是x轴,竖着的是y轴

appium+python自动化24-滑动方法封装(swipe)

获取坐标

1.由于每个手机屏幕的分辨率不一样,所以同一个元素在不同手机上的坐标也是不一样的,滑动的时候坐标不能写死了。可以先获取屏幕的宽和高,再通过比例去计算。


  1. # coding:utf-8
  2. from appium import webdriver
  3. desired_caps = {
  4. 'platformName': 'Android',
  5. 'deviceName': '30d4e606',
  6. 'platformVersion': '4.4.2',
  7. # apk包名
  8. 'appPackage': 'com.taobao.taobao',
  9. # apk的launcherActivity
  10. 'appActivity': 'com.taobao.tao.welcome.Welcome'
  11. }
  12. driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
  13. # 获取屏幕的size
  14. size = driver.get_window_size()
  15. print(size)
  16. # 屏幕宽度width
  17. print(size['width'])
  18. # 屏幕高度width
  19. print(size['height'])

2.运行结果:


  1. {u'width': 720, u'height': 1280}
  2. 720
  3. 1280

封装滑动方法

1.把上下左右四种常用的滑动方法封装,这样以后想滑动屏幕时候就能直接调用了

参数1:driver

参数2:t是持续时间

参数3:滑动次数

2.案例参考


  1. # coding:utf-8
  2. from appium import webdriver
  3. from time import sleep
  4. desired_caps = {
  5. 'platformName': 'Android',
  6. 'deviceName': '30d4e606',
  7. 'platformVersion': '4.4.2',
  8. # apk包名
  9. 'appPackage': 'com.taobao.taobao',
  10. # apk的launcherActivity
  11. 'appActivity': 'com.taobao.tao.welcome.Welcome'
  12. }
  13. driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
  14. def swipeUp(driver, t=500, n=1):
  15. '''向上滑动屏幕'''
  16. l = driver.get_window_size()
  17. x1 = l['width'] * 0.5 # x坐标
  18. y1 = l['height'] * 0.75 # 起始y坐标
  19. y2 = l['height'] * 0.25 # 终点y坐标
  20. for i in range(n):
  21. driver.swipe(x1, y1, x1, y2, t)
  22. def swipeDown(driver, t=500, n=1):
  23. '''向下滑动屏幕'''
  24. l = driver.get_window_size()
  25. x1 = l['width'] * 0.5 # x坐标
  26. y1 = l['height'] * 0.25 # 起始y坐标
  27. y2 = l['height'] * 0.75 # 终点y坐标
  28. for i in range(n):
  29. driver.swipe(x1, y1, x1, y2,t)
  30. def swipLeft(driver, t=500, n=1):
  31. '''向左滑动屏幕'''
  32. l = driver.get_window_size()
  33. x1 = l['width'] * 0.75
  34. y1 = l['height'] * 0.5
  35. x2 = l['width'] * 0.25
  36. for i in range(n):
  37. driver.swipe(x1, y1, x2, y1, t)
  38. def swipRight(driver, t=500, n=1):
  39. '''向右滑动屏幕'''
  40. l = driver.get_window_size()
  41. x1 = l['width'] * 0.25
  42. y1 = l['height'] * 0.5
  43. x2 = l['width'] * 0.75
  44. for i in range(n):
  45. driver.swipe(x1, y1, x2, y1, t)
  46. if __name__ == "__main__":
  47. print(driver.get_window_size())
  48. sleep(5)
  49. swipLeft(driver, n=2)
  50. sleep(2)
  51. swipRight(driver, n=2)

相关推荐