Appium自动化下拉刷新
使用Appium作app自动化测试,绕不开的就是下拉刷新操作,下拉是最常见的,其实还有上滑、左滑、右滑操作。在正式的测试流程里,可以把刷新操作封装成一个模块,需要时直接调用。
Appium中提供了三种滑动的方式:swipe滑动、scroll滑动、drag拖拽事件
swipe()方法是从⼀个坐标位置滑动到另⼀个坐标位置,是两个点之间的滑动。
def swipe(self, start_x, start_y, end_x, end_y, duration=None):"""Swipe from one point to another point, for an optional duration.:Args:- start_x - x-coordinate at which to start- start_y - y-coordinate at which to start- end_x - x-coordinate at which to stop- end_y - y-coordinate at which to stop- duration - (optional) time to take the swipe, in ms.:Usage:driver.swipe(100, 100, 100, 400)"""# `swipe` is something like press-wait-move_to-release, which the server# will translate into the correct actionaction = TouchAction(self)action \.press(x=start_x, y=start_y) \.wait(ms=duration) \.move_to(x=end_x, y=end_y) \.release()action.perform()return self
- start_x - 滑动开始x轴坐标
- start_y - 滑动开始y轴坐标
- end_x - 滑动结束x轴偏移量
- end_y - 滑动结束y轴偏移量
- duration - (可选) 执行此次滑动时间,单位毫秒
其中end_x 和 end_y 为基于start_x 和start_y 的偏移量;最终在执行中的 to_x = start_x +end_x 并非end_x ;duration 参数单位为ms(默认5毫秒),注意 1s = 1000ms。
封装刷新模块
便于随时调用,我们可以自行封装代码,将上滑、下滑、左滑、右滑封装成一个刷新模块。
#coding=utf-8
import timeclass Slide(object):def __init__(self, driver):self.driver = driver#获取机器屏幕大小x,ydef get_size(self):x = self.driver.get_window_size()['width']y = self.driver.get_window_size()['height']return x, y#屏幕向上滑动def swipe_up(self, t): # t是指滑动时间(默认5毫秒,可选参数)"""滑动时X轴不变,Y轴由大到小"""screensize = self.get_size()x1 = int(screensize[0] * 0.5) # x坐标y1 = int(screensize[1] * 0.75) # 起始y坐标y2 = int(screensize[1] * 0.25) # 终点y坐标self.driver.swipe(x1, y1, x1, y2, t)#屏幕向下滑动def swipe_down(self, t):"""滑动时X轴不变,Y轴由小到大"""screensize = self.get_size()x1 = int(screensize[0] * 0.5) # x坐标y1 = int(screensize[1] * 0.25) # 起始y坐标y2 = int(screensize[1] * 0.75) # 终点y坐标self.driver.swipe(x1, y1, x1, y2, t)#屏幕向左滑动def swipe_left(self, n, t): # n是指滑动次数"""滑动时Y轴不变,X轴由大到小"""screensize = self.get_size()x1 = int(screensize[0] * 0.9)y1 = int(screensize[1] * 0.5)x2 = int(screensize[0] * 0.1)for i in range(0, n): # for循环,控制滑动次数time.sleep(3)self.driver.swipe(x1, y1, x2, y1, t)#屏幕向右滑动def swipe_right(self, n, t):"""滑动时Y轴不变,X轴由小到大"""screensize = self.get_size()x1 = int(screensize[0] * 0.1)y1 = int(screensize[1] * 0.5)x2 = int(screensize[0] * 0.9)for i in range(0, n): # for循环,控制滑动次数time.sleep(3)self.driver.swipe(x1, y1, x2, y1, t)
假设刷新模块的文件名为app_slide 那么可以这样调用
from app_slide import Slide#调用时传递appium.webdriver
flush = Slide(driver)#下拉刷新
flush.swipe_down(1000)
Appium自动化下拉刷新相关推荐
- 微信小程序下拉刷新和上拉加载
效果图 微信小程序实现下拉刷新和上拉加载有2中方法 1 用系统自带的 个人感觉特别简单 2 使用scroll-view 实现, scroll-view 里面有2个属性是滑动到顶部以及到底部如下 其实 ...
- android google 下拉刷新 csdn,android SwipeRefreshLayout google官方下拉刷新控件
下拉刷新功能之前一直使用的是XlistView很方便我前面的博客有介绍 SwipeRefreshLayout是google官方推出的下拉刷新控件使用方法也比较简单 今天就来使用下SwipeRefres ...
- 使用Vant框架的组件van-pull-refresh搭配van-list和van-card完成上滑加载更多列表数据,下拉刷新当前列表数据(等同于翻页功能)
<template><div class="sg-page-body"><div class="sg-list"><v ...
- 微信小程序下拉刷新和上拉加载的实现
微信小程序开发交流qq群 173683895 承接微信小程序开发.扫码加微信. 正文: 一: 下拉刷新 下拉刷新两个步骤就能实现. 1.在要实现下拉刷新的页面的json配置文件里面加上 &q ...
- 微信小程序订单页面下拉刷新上拉分页加载
微信小程序开发交流qq群 581478349 承接微信小程序开发.扫码加微信. 正文: 效果图: 代码: json代码: {"enablePullDownRefresh" ...
- 20-flutter下拉刷新与上拉加载
1 RefreshIndicator 下拉刷新控件 下拉刷新的时候会回调 onRefresh 方法 RefreshIndicator(onRefresh: _handleRefresh,child: ...
- refreshcontrol 实现下拉刷新的功能
该组件实现下拉刷新的功能.不过该组件是用在ScrollView的内部的,为ScrollView添加一个下拉刷新的功能.当ScrollView的垂直方向的偏移量scrollY:0的时候,手指往下拖拽Sc ...
- 使用Google 官方的控件SwipeRefreshLayout实现下拉刷新功能
之前做东西的时候,经常会用到下拉刷新的功能,之前大家都在使用Github上的一个很著名的开源项目 PullToRefresh 但是,现在好消息来了,google在19.1版本的support-v4兼容 ...
- 安卓下拉刷新、上拉加载数据显示
整个是一个scrollView,嵌套一个线性布局,下拉刷新.或者上拉加载后,通过addView()方法,加载消息体,每一个消息体是一个复杂的子view. 做一个类似qq客户端"好友动态&qu ...
- mpvue 小程序如何开启下拉刷新,上拉加载?
https://developers.weixin.qq.com/miniprogram/dev/api/pulldown.html#onpulldownrefresh 小程序API 微信小程序之下拉 ...
最新文章
- linux的文件压缩与解压缩,linux(文件压缩与解压缩)
- 中国10大最震撼的无人工厂,你吃的用的都是这么来的!
- Leetcode 198.打家劫舍 (每日一题 20210622)
- function “printf“ declared implicitly
- CentOS 6.4 命令行 安装 VMware Tools
- windows挂载linux共享,永久挂载 Windows 共享
- mpvue中小程序自定义导航组件开发指南
- 使用jquery 动态操作添加/删除tr td
- android的直播送礼物,仿斗鱼直播送礼物效果
- 获取阿里云docker加速器地址
- sharepoint对nodejs的要求
- Android 开机时间慢问题debug
- 重邮计算机esi排名,重庆顶尖的3所“双非”大学,学科强就业好,重庆邮电大学在列...
- 如何免费搭建FTP服务器---金万维
- 红黑树·删除操作,详细图解
- 语义分割分割常用网络
- 深入理解Http请求、DNS劫持与解析
- oracle查询用户时候被锁,Oracle用户被锁的原因及解决办法
- TextView各种跑马灯
- 数据立方体(Cube)