滑动解析

滑动主要分为:水平滑动、垂直滑动、任意方向滑动

滑动轨迹

在Appium中模拟用户滑动操作需要使用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.
从一个点滑动到另一个点,duration是滑动时间
:Args:
- start_x - 开始滑动的x坐标
- start_y - 开始滑动的y坐标
- end_x - 结束点x坐标
- end_y - 结束点y坐标
- duration - 持续时间,单位毫秒,时间越短速度越快。默认为None可不填,一般设置500-1000毫秒比较合适 :Usage:
driver.swipe(100, 100, 100, 400)

封装滑动方法

 #coding=utf-8
from appium import webdriver
import time
desired_caps = {
#android的apk
'platformName': 'Android',
#手机设备名称
'deviceName': '192.168.175.101:5555',
#android系统的版本号
'platformVersion': '5.1',
# 'deviceName': 'ceshi',
# 'platformVersion': '7.0',
# 'udid':'83f04b4b5338424e', 'app':r'C:\Users\bzART\Desktop\app-artmall-release.apk',
# apk包名
'appPackage': 'com.baozhenart.artmall',
# apk的launcherActivity
'appActivity': 'com.baozhenart.artmall.SplashActivity',
#默认neReset为false,不要在会话前重置应用状态,每次启动都跟第一次启动一样,变为true则不一样
'noReset':'False',
#下面两行代码是为了屏蔽软件盘以至于可以输入中文
'unicodeKeyboard':True,#使用unicode编码方式发送字符串
'resetKeyboard':True#将键盘隐藏起来
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
time.sleep(5)
#获取屏幕尺寸,由于手机屏幕分辨率不一样,同一个元素在不同手机上的坐标不一样,滑动坐标不能写死。可以获取屏幕宽和高,再通过比例计算
def get_size():
x=driver.get_window_size()['width']
y=driver.get_window_size()['height']
return x,y
#显示屏幕尺寸(width,height)
l=get_size()
print(l) #向左滑动屏幕,n滑动次数,t滑动持续时间
def swipeLeft(driver,n,t=500):
l=get_size()
x1=l[0]*0.9 #起始x坐标
y1=l[1]*0.5 #y坐标
x2=l[0]*0.1 #终点x坐标
#向左滑动n次
for i in range(n):
driver.swipe(x1,y1,x2,y1,t)
#向右滑动屏幕
def swipeRight(driver,n,t=500):
l=get_size()
y1=l[1]*0.5
x1=l[0]*0.25
x2=l[0]*0.95
for i in range(n):
driver.swipe(x1,y1,x2,y1,t)
#向上滑动屏幕
def swipeUp(driver,n,t=500):
l=get_size()
x1=l[0]*0.5
y1=l[1]*0.95
y2=l[1]*0.35
for i in range(n):
driver.swipe(x1,y1,x1,y2,t)
#向下滑动屏幕
def swipeDown(driver,n,t=500):
l = get_size()
x1 = l[0] * 0.5
y1 = l[1] * 0.35
y2 = l[1] * 0.85
for i in range(n):
driver.swipe(x1, y1, x1, y2, t)
if __name__=="__main__":
swipeLeft(driver,2)
time.sleep(2)
swipeRight(driver,1)

最新文章

  1. 分析-eclipse已经导入jar包了,但还是出现classNotFound异常
  2. openstack中eventlet使用
  3. Dell DRAC的重启方法
  4. SQLSERVER 数据库查看各表的记录数
  5. 纯JS写动态分页样式效果
  6. # 20175333曹雅坤《Java程序设计》第2周学习总结
  7. C++第一课:基本语法for Visual Studio 2015[个人见解]
  8. Kafka对Java程序员有多重要?连阿里都再用它处理亿万级数据统计
  9. live-server
  10. 解决React Native使用Fetch API请求网络报Network request failed
  11. 【linux】进程状态
  12. Seaching TreeVIew WPF
  13. python 流程控制(for循环语句)
  14. python配置文件操作——configparser模块
  15. 启明星产品与微软Active Directory活动目录集成说明
  16. python--内置函数清单
  17. 【python】@property装饰器
  18. SQL Cookbook—插入、更新与删除
  19. java反射(基本知识)
  20. Spring简化配置

热门文章

  1. Poj 2017 Speed Limit(水题)
  2. live555源代码分析
  3. 使用Sed抽取MySQL安装文档的目录及行号
  4. IOS的设计模式
  5. “在注释中遇到意外的文件结束”--记一个令人崩溃的bug
  6. 实现hadoop中的机架感知
  7. 文件格式——fastq格式
  8. 8、泛型程序设计与c++标准模板库2.3双端队列容器
  9. Win10不能直接拖文件/Foxmail不能拖文件解决办法
  10. product of大数据平台搭建------CM 和CDH安装