App 自动化测试 滑动操作

使用 App 的时候,我们经常会用到左右上下滑动。

比如向上滑动,查看更多内容;向下滑动刷新;左右滑动翻页等。

这里就需要用到屏幕滑动功能 swipe() 方法。

swipe() 实现从 A 点到 B 点的滑动,也就是需要确定两个坐标点。

swipe(start_x, start_y, end_x, end_y, duration=None)

swipe() 方法的参数如下:

  • start_x:起始点的x轴坐标;
  • start_y:起始点的y轴坐标;
  • end_x:结束点的x轴坐标;
  • end_y:结束点的y轴坐标;
  • duration:滑动的延迟时间,在滑动前会稍作等待,也就是实现缓慢的滑动,默认值为None,可以设置具体的时间,单位为毫秒。

注意,向上滑动的时候,延迟时间会影响刷新的数量,缓慢滑动只会更新大致一屏的数据,而快速滑动就可能翻很多屏的数据。使用时可以尝试一下。

比如想实现向上滑动,查看屏幕下方的更多内容。此时 x 轴不变, y 轴从大变小。(以现在常见的分辨率1080 * 1920为例)

driver.swipe(500, 1800, 500, 200, 300)

从坐标 (500, 1800) 滑动到 (500, 200) 的位置,也就是从最下面屏幕中间的位置滑动到屏幕顶部,实现向下翻页。


当然直接指定坐标点,如果分辨率变化,那么将会滑动失败。我们可以通过driver.get_window_size()方法获取屏幕的分辨率,然后使用百分比的方式来实现滑动。

# 从右往左滑动,相当于向左翻页
start_x = int(size['width'] * 0.9)
start_y = int(size['height'] * 0.5)
end_x = int(size['width'] * 0.1)
end_y = start_y   # 左右滑动,y 不变
driver.swipe(start_x, start_y, end_x, end_y)

# 从左往右滑动,相当于向左翻页
start_x = int(size['width'] * 0.1)
start_y = int(size['height'] * 0.5)
end_x = int(size['width'] * 0.9)
end_y = start_y
driver.swipe(start_x, start_y, end_x, end_y)

# 从下往上滑动,相当于向上翻页
start_x = int(size['width'] * 0.5)
start_y = int(size['height'] * 0.8)
end_x = start_x
end_y = int(size['height'] * 0.2)
driver.swipe(start_x, start_y, end_x, end_y)

# 从下往上滑动,相当于向上翻页
start_x = int(size['width'] * 0.5)
start_y = int(size['height'] * 0.2)
end_x = start_x
end_y = int(size['height'] * 0.8)
driver.swipe(start_x, start_y, end_x, end_y)

尝试:
可以试试把滑动封装成一个函数,传入'u','d','l','r',分别实现上下左右滑动。

swipe('r')   # 向右滑动,实现向左边翻页
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容