appium--连续滑动

简介: appium--连续滑动

TouchAction


在之前说过了滑动swip,那种是两点之间的滑动,比如上滑,左滑等。但实际工作中会遇到一些复杂的场景,如九宫格的滑动等待,这时候就要使用TouchAction,TouchAction包含一系列操作,比如按压,长按,点击,移动,暂停,使用TouchAction需要先导入对应的模块

from appium.webdriver.common.touch_action import TouchAction


按压


方法:press()开始按压一个元素或者坐标点(x,y),通过手指按压手机屏幕的某个位置,press()也可以接收屏幕的坐标(x,y)

press(self,el=None,x=None,y=None)

TouchAction(driver).press(x=0,y=300)

TouchAction(driver).press(x=0,y=308).release().perform()

除了press()方法之外,本例中还用到了别外两个新方法。

  • release() 结束的行动取消屏幕上的指针。
  • Perform() 执行的操作发送到服务器的命令操作


长按


方法:longPress()

开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参,既然长按,得有按的时间吧。duration以毫秒为单位。1000表示按一秒钟。其用法与press()方法相同。

long_press(self,el=None,x=None,y=None,duration=1000)


点击


方法:tap()

对一个元素或控件执行点击操作。用法参考press()。

tap(self,el=None,x=None,y=None,count=1)


移动


move_to()将指针从上一个点移动到指定的元素或点

move_to(self,el=None,x=None,y=None)

注意:移动到目标位置有时是算绝对路径,有时是基于前面一个坐标点的偏移量,要结合具体的app来实践


暂停


Wait()

wait(self,ms=0)

单位为ms


释放


方法release()结束的行动或取消屏幕上的指针

release(self)


执行


perform()执行的操作发送到服务器的命令操作

perform(self)


实战


目的:完成下面的图案滑动

1 from appium.webdriver.common.touch_action import TouchAction
 2 from appium import webdriver
 3
 4 desired_caps = {}
 5 desired_caps['platformName'] = 'Android'
 6 desired_caps['deviceName'] = '127.0.0.1:62001'
 7 desired_caps['platforVersion'] = '5.1.1'
 8 desired_caps['app'] = r'F:\xxx.apk'  # 安装app
 9 desired_caps['appPackage'] = 'com.xxx'
10 desired_caps['appActivity'] = 'com.bizxxx'
11
12 driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
13
14
15 def get_size():
16     x = driver.get_window_size()['width']
17     y = driver.get_window_size()['height']
18     return x, y
19
20 # 向左滑动
21 def swipeleft():
22     l = get_size()
23     x1 = int(l[0] * 0.9)
24     y1 = int(l[1] * 0.5)
25     x2 = int(l[0] * 0.1)
26     driver.swipe(x1, y1, x2, y1, 1000)
27
28 # 向上滑动
29 def swipeUp():
30     l = get_size()
31     x1 = int(l[0] * 0.5)
32     y1 = int(l[1] * 0.95)
33     y2 = int(l[1] * 0.35)
34     driver.swipe(x1, y1, x1, y2, 1000)
35
36
37 for i in range(2):
38     TouchAction(driver).press(x=262, y=385).wait(2000) \
39         .move_to(x=451, y=388).wait(1000) \
40         .move_to(x=650, y=589).wait(1000) \
41         .move_to(x=649, y=785).wait(1000) \
42         .release().perform()

代码解释:

第28行执行滑动操作,press按下了第一个点等待2秒,第39行表示移动到第二个点,等待1秒,第40行表示移动到第三个点,等待1s,第41行表示,移动到第四个点,等待1s,第42行release()表示释放连续滑动操作,perform()表示发送到服务端执行前面的一系列操作


相关文章
|
5月前
|
测试技术
Appium自动化测试swipe滑动封装
Appium自动化测试swipe滑动封装
84 0
|
编解码
appium--滑动
appium--滑动
|
测试技术 定位技术
Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动、拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等。这些需要针对控件元素的滑动操作,或者点至点、元素至元素之间的滑动操作,使用swipe方法显然不是很方便,这时候就可以用到appium里提供TouchAction类和MultiAction类。
Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
|
测试技术
Python+Appium自动化测试(8)-swipe()滑动页面
app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑、下滑、左滑、右滑操作。
Python+Appium自动化测试(8)-swipe()滑动页面
|
Android开发 编解码
appium+python自动化24-滑动方法封装(swipe)
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快。默认为None可不填,一般设置500-1000毫秒比较合适。 swipe(self, start_x, start_y, end_x, end_y, duration=None) ...
2646 0
|
JavaScript iOS开发
|
5月前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
89 1
|
2月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
67 1