元素事件操作

学习目标

  • 掌握常用的事件操作

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. swipe滑动事件

从一个坐标位置滑动到另⼀个坐标位置,是两个点之间的滑动.

方法: 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
例如: driver.swipe(144,1017,144,444,2000)

需求:
 进入设置,从存储滑动到更多

# 找到存储和更多坐标
save = driver.find_element_by_xpath("//*[contains(@text,'存储')]").location
more = driver.find_element_by_xpath("//*[contains(@text,'更多')]").location
# 移动
driver.swipe(save[‘x’], save[“y”], more[“x”], more[“y”], 2000)

3. scroll滚动事件

从一个元素滚动到另外一个元素,直到页面自动停止

方法: scroll(origin_el, destination_el)
参数:
1. origin_el:开始位置
2. destination_el: 结束元素

需求:
  进入设置页,模拟手指从存储菜单位置到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: 结束元素

需求: 
    进入设置页,模拟手指将存储菜单 滑动到 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)

5. 将应用置于后台事件

将应用放置到后台,模拟热启动

方法: background_app(seconds)
参数:
 seconds: 停留在后台时间,单位,秒

需求:
    进入设置,将app至于后台5s


driver.background_app(5)