Appium元素事件操作API
- 1.前置代码
from appium import webdriver
# server 启动参数
desired_caps = {}
# 设备信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.56.101:5555'
# app的信息
desired_caps['appPackage'] = 'com.android.settings'
desired_caps['appActivity'] = '.Settings'
# 声明我们的driver对象
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
-
2.swip滑动事件
⚠️从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动 方法:swipe(start_x, start_y, end_x, end_y, duration=None) 参数: 1.start_x:起点X轴坐标 2.start_y:起点Y轴坐标 3.end_x: 终点X轴坐标 4.end_y,: 终点Y轴坐标 5.duration: 滑动这个操作一共持续的时间长度,单位:ms
业务场景: 1.进入设置 2.从坐标(148,659)滑动到坐标(148,248)
代码实现: # 滑动没有持续时间 driver.swipe(188,659,148,248) # 滑动持续5秒的时间 driver.swipe(188,659,148,248,5000)
-
3.scroll滑动事件
⚠️ 从一个元素滑动到另一个元素,直到页面自动停止 方法:scroll(origin_el, destination_el) 参数: 1.origin_el:滑动开始的元素 2.destination_el:滑动结束的元素
业务场景: 1.进入设置页 2.模拟手指从存储菜单位置 到 WLAN菜单位置的上滑操作
代码实现: # 定位到存储菜单栏 el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]") # 定位到WLAN菜单栏 el2 = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]") # 执行滑动操作 driver.scroll(el1,el2)
- 4.drag拖拽事件
⚠️ 从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置 方法:drag_and_drop(origin_el, destination_el) 参数: 1.origin_el:滑动开始的元素 2.destination_el:滑动结束的元素
业务场景: 1.进入设置页 2.模拟手指将存储菜单 滑动到 WLAN菜单栏位置
代码实现: # 定位到存储菜单栏 el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]") # 定位到WLAN菜单栏 el2 = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]") # 执行滑动操作 driver.drag_and_drop(el1,el2)