App自动化测试——滑动和拖拽事件

学习目标

  1. 能够使用 swipe 滑动屏幕
  2. 能够使用 scroll 滑动屏幕
  3. 能够使用 drag_and_drop 滑动屏幕

一. 滑动和拖拽事件

应用场景
我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模
拟手指的滑动,也就是我们将要学习的滑动和拖拽事件

1.1 swipe 滑动事件

概念
从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动。

方法名

# 从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动
# 参数:
# start_x: 起点X轴坐标
# start_y: 起点Y轴坐标
# end_x: 终点X轴坐标
# end_y: 终点Y轴坐标
# duration: 滑动这个操作一共持续的时间长度,单位:ms
driver.swipe(start_x, start_y, end_x, end_y, duration=None)

示例1

模拟手指从(100, 2000),滑动到(100, 1000)的位置

核心代码

driver.swipe(100, 2000, 100, 1000)

示例2

模拟手指从(100, 2000),滑动到(100, 100)的位置

核心代码

driver.swipe(100, 2000, 100, 100)

示例3

模拟手指从(100, 2000),滑动到(100, 100)的位置,持续5秒

核心代码

driver.swipe(100, 2000, 100, 100, 5000)

小结

距离相同时,持续时间越长,惯性越小 持续时间相同时,手指滑动的距离越大,实际滑动的距离也就越大

1.2 scroll 滑动事件

概念
从一个元素滑动到另一个元素,直到页面自动停止。

方法名

# 从一个元素滑动到另一个元素,直到页面自动停止
# 参数:
# origin_el: 滑动开始的元素
# destination_el: 滑动结束的元素
driver.scroll(origin_el, destination_el)

示例

从 “存储” 滑动到 “更多”

核心代码

save_button = driver.find_element_by_xpath("//*[@text='存储']")
more_button = driver.find_element_by_xpath("//*[@text='更多']")
driver.scroll(save_button, more_button)

小结

不能设置持续时间,惯性很大

1.3 drag_and_drop 拖拽事件

概念
从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置。

方法名

# 从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置
# 参数:
# origin_el: 滑动开始的元素
# destination_el: 滑动结束的元素
driver.drag_and_drop(origin_el, destination_el)

示例

将 “存储” 拖拽到 “更多”

核心代码

save_button = driver.find_element_by_xpath("//*[@text='存储']")
more_button = driver.find_element_by_xpath("//*[@text='更多']")
driver.drag_and_drop(save_button, more_button)

小结

不能设置持续时间,没有惯性

二. 滑动和拖拽事件的选择

滑动和拖拽无非就是考虑是否有 “惯性” ,以及传递的参数是 “元素” 还是 “坐标”。

可以分成以下四种情况

  • 有 “惯性” ,传入 “元素”
    scroll
  • 无 “惯性” ,传入 “元素”
    drag_and_drop
  • 有 “惯性” ,传入 “坐标”
    swipe,并且设置较短的 duration 时间
  • 无 “惯性” ,传入 “坐标”
    swipe,并且设置较长的 duration 时间
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值