Appium 移动端自动化测试,触摸(TouchAction) 与多点触控(MultiAction)(1)

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

#在坐标为(x,y)的点执行press操作
press(int x, int y)

#在控件el的左上角的x坐标偏移x单位,y坐标偏移y单位的坐标上执行press操作。
press(WebElement el, int x, int y)


#### 长按操作



控件长按

longPress(WebElement el)

点长按

longPress(int x, int y)

偏移点长按

longPress(WebElement el, int x, int y)



现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】


![](https://img-blog.csdnimg.cn/direct/1a64a4c1440845c1ade2f2bfab8ed060.png)


#### 移动操作



#以el为目标,从另一个点移动到该目标上
moveTo(WebElement el)

#以(x,y)点为目标,从另一个点移动到该目标上
moveTo(int x, int y)

以控件el的左上角为基准,偏移(x,y)。以该点为目标,从另一个点移动到该点上。

moveTo(WebElement el, int x, int y)


#### 释放操作



release() # 释放动作,与按下和长按联合使用


#### *等待*



代表一个空操作,等待一段时间

wait()

等待ms毫秒

wait(int ms)


#### 执行 TouchAction 存储的动作



执行动作

perform()

也可以通过 driver 对象直接执行触摸操作

driver.perform(TouchAction().tap(el))


实例:九宫格解锁,九宫格坐标与解锁密码如下图



![](https://img-blog.csdnimg.cn/img_convert/f2582300072e17194050d9022d30f1ea.jpeg)



from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction

九宫格原点的位置,从左至右,从上至下

site = [(200, 200), (200, 400), (200, 600),
(400, 200), (400, 400), (400, 600),
(600, 200), (600, 400), (600, 600)]

pwd = ‘01246’
pwd_site = []

将密码转换为坐标位置

for s in pwd:
pwd_site.append(site[int(s)])

driver = webdriver.Remote()
action = TouchAction(driver)

在起始点按下

action.press(pwd_site[0]).wait(200)

按照坐标点移动

for i in range(1, len(pwd_site)):
action.move_to(pwd_site[i]).wait(200)

释放

action.release()

执行动作

action.perform()


### 多点触控(MultiTouch)


MultiTouch对象是触摸操作的集合,只有两个方法,add 和 perform 。


**add** 于将不同的触摸操作添加到当前的多点触控中。


**perform** 执行多点触控动作


示例:



from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.multi_action import MultiAction

driver = webdriver.Remote()

创建触摸事件

action1 = TouchAction(driver).tap(x=100, y=100)
action2 = TouchAction(driver).tap(element=ele)

创建多点触控对象

multi_action = MultiAction(driver)

同时执行 action1 和 action2 动作

multi_action.add(action1).add(action2)

执行多点触控

multi_action.perform()


**下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!**


![img](https://img-blog.csdnimg.cn/img_convert/e57c29b7f41bc6307ef7d873bb79164e.png)
![img](https://img-blog.csdnimg.cn/img_convert/ad9d4d74a354b3e560e43e3321aab096.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值