我们在做app测试的时候,都会写一些长按,双击,滑动,拖动等一系列简单的操作来验证按钮或者跳转页是否正常的用例,那么我们在做自动化测试的时候这些操作应该怎么去做呢?

TouchAction

TouchAction是APPium中封装的一个方法,主要是都手势控制的一些操作:长按,滑动,等其他操作。

源码:

class TouchAction(object):def __init__(self, driver=None):self._driver = driverself._actions = []def tap(self, element=None, x=None, y=None, count=1):对元素执行点击操作参数:-元素-要点击的元素- x -(可选)x坐标点击,相对于左上角的元素。- y -(可选)y坐标。如果使用y,也必须设置x,反之亦然"""opts = self._get_opts(element, x, y)opts['count'] = countself._add_action('tap', opts)return selfdef press(self, el=None, x=None, y=None, pressure=None):"""以在特定元素或点上的下拉操作开始链参数:- el -(可选)要按的元素- x -(可选)x配合按。如果使用y,也必须设置x- y -(可选)y可按。如果使用x,也必须设置y-压力-(可选)[iOS只]按作为强制触摸。"""self._add_action('press', self._get_opts(el, x, y, pressure=pressure))return selfdef long_press(self, el=None, x=None, y=None, duration=1000):"""长按"""self._add_action('longPress', self._get_opts(el, x, y, duration))return selfdef wait(self, ms=0):"""按住元素后的等待时间"""if ms is None:ms = 0opts = {'ms': ms}self._add_action('wait', opts)return selfdef move_to(self, el=None, x=None, y=None):"""从这个坐标移动到另一个"""self._add_action('moveTo', self._get_opts(el, x, y))return selfdef release(self):"""释放手指"""self._add_action('release', {})return selfdef perform(self):"""执行动作"""params = {'actions': self._actions}self._driver.execute(Command.TOUCH_ACTION, params)# get rid of actions so the object can be reusedself._actions = []return self

这里我们先拿一个小栗子说明使用方法

class Actions(object):def __init__(self):self._actions = []def a(self, x):self._actions.append(x)return selfdef b(self, y):self._actions.append(y)return selfdef c(self, z):self._actions.append(z)return selfdef perform(self):print(self._actions)if __name__ == '__main__':Actions().a("hello").c("world").b("aaa").perform()------结果-------
['hello', 'world', 'aaa']

其实TouchAction就是通过这个方法来执行的,我们进行一系列的操作来后,通过perform方法来执行运行

tap

这个tap其实和前面模拟点击中写的tap是差不多,TouchAction中的tap中可以加入直接加入元素,也可以通过坐标进行定位

# coding:utf-8
from appium import webdriver
# 导入TochAction模块
from appium.webdriver.common.touch_action import TouchAction
import time
desired_caps = {'platformName': 'Android',  # 测试版本'deviceName': 'emulator-5554',   # 设备名'platformVersion': '5.1.1', # 系统版本"appPackage": "com.taobao.taobao",   # app包名"appActivity": "com.taobao.tao.welcome.Welcome",   # 启动launch Activity"noReset": True,  # 不清空数据"unicodeKeyboard": True,    # 使用Unicode编码方式发送字符串"resetKeyboard": True,      # 键盘隐藏起来}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
time.sleep(10)
# 登录按钮
element = driver.find_element_by_class_name('android.widget.Button')
# 实例化
toch = TouchAction(driver)
# 执行点击
toch.tap(element=element).perform()

TouchAction其他动作:

触摸 (tap)

短按 (press)

长按 (long_press)

等待 (wait)

移动到 (moveTo)

释放 (release)

执行 (perform)

appium---TouchAction相关推荐

  1. (转载)中文Appium API 文档

    该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...

  2. 中文 Appium API 文档

    该文档是Testerhome官方翻译的 源地址:https://github.com/appium/appium/tree/master/docs/cn 官方网站上的:http://appium.io ...

  3. appium+python自动化33-解锁九宫格(TouchAction)

    TouchAction 1.源码可以在这个路径找到:Lib\site-packages\appium\webdriver\common\touch_action.py class TouchActio ...

  4. appium元素坐标定位TouchAction

    网上有很多人说的各种appium定位方法,但是我感觉有的不好用,有的不能用,所以整理了一个简单的定位方式,通过坐标定位 1.需要用到UIautomator(Andriod7.0版本需要UIautoma ...

  5. 【Python+Appium】开展自动化测试(十)TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)

    目录 前言 一,TouchAction类 1,TouchAction类由webdriver库提供,提供以下方法: 2,tap点击 3,press短按 4,long_press长按 5,move_to移 ...

  6. appium无法定位元素,TouchAction坐标定位工具

    在appium使用元素定位时 uiautomatorviewer定位如下图,这里看到的坐标有时候是不准的,我们要开启手机开发者选项的指针位置 在开发者选项中开启显示触摸操作和指针位置,这样以后调试ap ...

  7. Appium 关于 swipe 滑动时间控件选择时间问题,swipe 滑动没效果,用 TouchAction代替

    一开始一直想用 swipe 进行滑动去操作滑动时间控件,选择时间. 后来尝试了几次后也没有滑动效果出现,各种百度搜索也找不到解决办法. 于是就采取了 TouchAction 方法,真机可以用开发者选项 ...

  8. appium中的TouchAction的常用用法

    1.按压press 每一个press之后都要一个releasw()和Perform 开始按压一个元素或坐标点(x,y).通过手指按压手机屏幕的某个位置. press(WebElement el, in ...

  9. Appium的Java封装

    文章出处 http://blog.csdn.net/niubitianping/article/details/52612211 一.为什么需要封装? 封装的本意就是为了方便.简洁. 二.Androi ...

  10. appium ios 真机自动化环境搭建

    近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的.本次书 ...

最新文章

  1. 几步教你轻松搭建一个Java Web项目
  2. 编译hbase2.2.4+hadoop3.1.2
  3. google摄像头查找办法
  4. anaconda-ks.cfg详解
  5. 密码学原理与实践_浅谈SSH2工作原理
  6. 2016年下半年软考网络工程师真题解析精编版
  7. 对话元境 王矛,详解元境蓝图:以全面的技术重新定义计算范式
  8. 宾馆管理系统(做了ppt忘记发博客了)
  9. C语言函数取大,C语言函数大全(部分)
  10. 计算机专业本科生必学课程
  11. 阿里云服务器 安全组 防火墙 开放端口流程
  12. fat32源码c语言,FAT32文件系统基本原理与数据恢复编程
  13. 爱情没有了,生活仍在继续
  14. Perma.cc停止学术链接腐烂
  15. 工作组服务器虚拟化Hyper-V Replica 复写技术(二)
  16. [个人笔记]R语言:缺失值NA处理
  17. LNMP架构和论坛搭建以及一键部署
  18. 南京邮电大学2013年硕士研究生招生复试及同等学力加试参考书目
  19. 一幅图认识开源世界的大咖
  20. 指数基金定投指南 思维导图

热门文章

  1. Spring boot 正常启动 浏览器无法访问Controller
  2. “人机结合”基金何以笑傲18年的“团灭行情”?
  3. ToneLab for Mac(ps人像修图插件)支持ps2021
  4. java实现多重继承_Java对于多重继承是怎么实现的
  5. 思迈特软件Smartbi:没想到,那些具有设计感的ppt饼图,原来都是这样做的!
  6. 超声波引导系统开源(五)超声波传感器原理
  7. mysql mac 客户端
  8. hive - Hive函数大全
  9. 螺钉装弹垫平垫机器人_螺栓是用平垫,还是弹垫,怎么选择?
  10. 索彤L165D型Schildknecht挠曲/屈挠试验机