热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3+Appium自动化07-滑动操作以及滑动方法封装

滑动解析滑动主要分为:水平滑动、垂直滑动、任意方向滑动滑动轨迹在Appium中模拟用户滑动操作需要使用swipe方法,该方法定义如下:defswipe(self,sta

滑动解析

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

滑动轨迹

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)

封装滑动方法

 1 #coding=utf-8
 2 from appium import webdriver
 3 import time
 4 desired_caps = {
 5                 #android的apk
 6                 'platformName': 'Android',
 7                 #手机设备名称
 8                 'deviceName': '192.168.175.101:5555',
 9                 #android系统的版本号
10                 'platformVersion': '5.1',
11                 # 'deviceName': 'ceshi',
12                 # 'platformVersion': '7.0',
13                 # 'udid':'83f04b4b5338424e',
14 
15 
16                 'app':r'C:\Users\bzART\Desktop\app-artmall-release.apk',
17                 # apk包名
18                 'appPackage': 'com.baozhenart.artmall',
19                 # apk的launcherActivity
20                 'appActivity': 'com.baozhenart.artmall.SplashActivity',
21                 #默认neReset为false,不要在会话前重置应用状态,每次启动都跟第一次启动一样,变为true则不一样
22                 'noReset':'False',
23                 #下面两行代码是为了屏蔽软件盘以至于可以输入中文
24                 'unicodeKeyboard':True,#使用unicode编码方式发送字符串
25                 'resetKeyboard':True#将键盘隐藏起来
26                 }
27 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
28 driver.implicitly_wait(10)
29 time.sleep(5)
30 #获取屏幕尺寸,由于手机屏幕分辨率不一样,同一个元素在不同手机上的坐标不一样,滑动坐标不能写死。可以获取屏幕宽和高,再通过比例计算
31 def get_size():
32     x=driver.get_window_size()['width']
33     y=driver.get_window_size()['height']
34     return x,y
35 #显示屏幕尺寸(width,height)
36 l=get_size()
37 print(l)
38 
39 #向左滑动屏幕,n滑动次数,t滑动持续时间
40 def swipeLeft(driver,n,t=500):
41     l=get_size()
42     x1=l[0]*0.9 #起始x坐标
43     y1=l[1]*0.5 #y坐标
44     x2=l[0]*0.1 #终点x坐标
45     #向左滑动n次
46     for i in range(n):
47         driver.swipe(x1,y1,x2,y1,t)
48 #向右滑动屏幕
49 def swipeRight(driver,n,t=500):
50     l=get_size()
51     y1=l[1]*0.5
52     x1=l[0]*0.25
53     x2=l[0]*0.95
54     for i in range(n):
55         driver.swipe(x1,y1,x2,y1,t)
56 #向上滑动屏幕
57 def swipeUp(driver,n,t=500):
58     l=get_size()
59     x1=l[0]*0.5
60     y1=l[1]*0.95
61     y2=l[1]*0.35
62     for i in range(n):
63         driver.swipe(x1,y1,x1,y2,t)
64 #向下滑动屏幕
65 def swipeDown(driver,n,t=500):
66     l = get_size()
67     x1 = l[0] * 0.5
68     y1 = l[1] * 0.35
69     y2 = l[1] * 0.85
70     for i in range(n):
71         driver.swipe(x1, y1, x1, y2, t)
72 if __name__=="__main__":
73     swipeLeft(driver,2)
74     time.sleep(2)
75     swipeRight(driver,1)

 


推荐阅读
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文介绍了如何使用Python的Paramiko库批量更新多台服务器的登录密码。通过示例代码展示了具体实现方法,确保了操作的高效性和安全性。Paramiko库提供了强大的SSH2协议支持,使得远程服务器管理变得更加便捷。此外,文章还详细说明了代码的各个部分,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 为了优化直播应用底部聊天框的弹出机制,确保在不同设备上的布局稳定性和兼容性,特别是在配备虚拟按键的设备上,我们对用户交互流程进行了调整。首次打开应用时,需先点击首个输入框以准确获取键盘高度,避免直接点击第二个输入框导致的整体布局挤压问题。此优化通过调整 `activity_main.xml` 布局文件实现,确保了更好的用户体验和界面适配。 ... [详细]
  • 本文详细解析了如何利用Appium与Python在真实设备上执行测试示例的方法。首先,需要开启手机的USB调试功能;其次,通过数据线将手机连接至计算机并授权USB调试权限。最后,在命令行工具中验证设备连接状态,确保一切准备就绪,以便顺利进行测试。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 本文将详细介绍Python中*args和**kwargs的用法,包括它们的基本概念、应用场景以及注意事项。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 如何在Android应用中设计和实现专业的启动欢迎界面(Splash Screen)
    在Android应用开发中,设计与实现一个专业的启动欢迎界面(Splash Screen)至关重要。尽管Android设计指南对使用Splash Screen的态度存在争议,但一个精心设计的启动界面不仅能提升用户体验,还能增强品牌识别度。本文将探讨如何在遵循最佳实践的同时,通过技术手段实现既美观又高效的启动欢迎界面,包括加载动画、过渡效果以及性能优化等方面。 ... [详细]
author-avatar
利盈香玟倩文怡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有