appium+python自动化48-长按(long_press)
前言
长按操作是经常会遇到的场景,通过driver可以直接调出long_press_keycode方法,但是这个方法是长按手机上某个按钮,比如长按电源键,长按home键。
长按某个元素或者长按屏幕上某个点,就需要用到TouchAction里面提供的long_press操作了
定位ListView
1.先看看哪些场景是ListView

2.像这种listview里面每行记录的id都是一样的,就用前面讲到的list定位,取下标就可以了

3.定位参考
# 定位聊天记录列表,选第一个长按
el = driver.find_elements_by_id("com.tencent.mm:id/apv")[0]
长按long_press
1.长按的操作可以用前面讲到的TouchAction类里面的long_press方法操作
def long_press(self, el=None, x=None, y=None, duration=1000):
# 作者:上海-悠悠 QQ交流群:512200893
长按操作,可以传定位的元素对象,也可以传坐标
el 是定位元素的对象
x,y是传坐标
duration是按住的持续时间,默认1000,单位是毫秒
2.实现方法
# 长按
TouchAction(driver).long_press(el).perform()
参考代码
# coding:utf-8
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time
# 作者:上海-悠悠 QQ交流群:330467341
desired_caps = {
'platformName': 'Android',
'platformVersion': '7.0',
'deviceName': 'A5RNW18316011440',
'appPackage': 'com.tencent.mm',
'appActivity': '.ui.LauncherUI',
'automationName': 'Uiautomator2',
# 'unicodeKeyboard': True,
# 'resetKeyboard': True,
'noReset': True,
# 'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
# 定位聊天记录列表,选第一个长按
el = driver.find_elements_by_id("com.tencent.mm:id/apv")[0]
# 长按
TouchAction(driver).long_press(el).perform()
time.sleep(3)
# 定位选项框‘删除该聊天’
driver.find_element_by_xpath("//*[@text='删除该聊天']").click()
time.sleep(3)
# 定位选项框‘取消’
driver.find_element_by_id("com.tencent.mm:id/alk").click()
在学习过程中有遇到疑问的,可以appium+python QQ群交流:330467341
appium+python自动化48-长按(long_press)的更多相关文章
- Appium+python自动化8-Appium Python API
Appium+python自动化8-AppiumPython API 前言: Appium Python API全集,不知道哪个大神整理的,这里贴出来分享给大家. 1.contexts conte ...
- appium+python自动化61-中文输入乱码问题解决
前言 在夜神模拟器上输入中文,发现是乱码,将unicodeKeyboard和resetKeyboard参数设置为True了,发现还是没法解决. 打开手机设置语言和输入法,发现找不到Appium And ...
- appium+python自动化52-多点触控MultiAction
前言 MultiAction是针对多点触控操作的,是TouchAction的一个补充模块 TouchAction用法参考前面的一篇:appium+python自动化33-TouchAction 多点触 ...
- Appium+python自动化20-查看iOS上app元素属性
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素 Mac版的appium1.6的 ...
- Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...
- appium+python自动化50-生成定位对象模板templet(jinja2)
前言 每次自己写pageobject定位元素对象太繁琐,格式都差不多,只是换个定位方法,这种就可以才有模板的方式,批量生成pageobject定位元素对象的模板 python里面生成模板有两个模块可以 ...
- Appium+python自动化20-查看iOS上app元素属性【转载】
前言 学UI自动化首先就是定位页面元素,玩过android版的appium小伙伴应该都知道,appium的windows版自带的Inspector可以定位app上的元素Mac版的appium1.6的版 ...
- Appium+python自动化19-iOS模拟器(iOS Simulator)安装自家APP【转载】
前言 做过iOS上app测试的小伙伴应该都知道,普通用户安装app都是从appstore下载安装,安装测试版本的app,一般就是开发给的二维码扫码安装, 或者开发给个.ipa的安装包文件,通过itoo ...
- Appium+python自动化
名称 链接地址 Appium+python自动化8-Appium Python API(上) http://mp.weixin.qq.com/s/WvpT5oRrYY22avI95FuypQ Appi ...
随机推荐
- ACdream 1157 Segments CDQ分治
题目链接:https://vjudge.net/problem/ACdream-1157 题意: Problem Description 由3钟类型操作: 1)D L R(1 <= L < ...
- [How to]如何自定义plist文件和读取plist文件内容
1.简介 plist作为IOS的固化文件,就好比java中properties文件,但是在IOS中plist是可读写的. 本文将介绍自定义静态的plist文件. 2.自定义静态plist文件 右击你的 ...
- 测试php单例模式和静态访问,实例化访问的效率
// 测试的类class Memory { private static $a= null; public function __construct() { return self::$a; } pu ...
- 利用BeanUtils工具类封装表单数据
一.BeanUtils工具类的使用 1.首先导入BeanUtils工具类的jar包 commons-beanutils-1.8.0.jar commons-logging-1.1.1.jar 2.se ...
- java 多线程剖析
问题的缘由源自于一道简单的面试题:题目要求如下: 建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC. 解决问题前我们前补充一些基本知识: ...
- finally
finally 我们都知道无论try语句中是否抛出异常,finally中的语句一定会被执行.我们来看下面的例子: try: f = open("/tmp/output", &qu ...
- http-server:一个简单的零配置命令行的http服务器
首先简介一下http-server: http-server是一个简单的零配置命令行http服务器,他对于生产使用来说足够强大,他是简单和可删节足以用于测试,足够简单易用,而且可用于本地开发 1.首先 ...
- IEDA自动清除无用的import
Before After Step 快捷键展示格式化对话框:ctrl + shift + alt + l 格式化快捷键:ctrl + alt + l <wiz_tmp_tag id= ...
- poj 2452(RMQ+二分查找)
题目链接: http://poj.org/problem?id=2452 题意:在区间[1,n]上找到满足 a[i]<a[k]<a[j] (i<=k<=j) 的最大子区间 (j ...
- [转载] Python itertools模块详解
原文在这里,写的很详细,感谢原作者,以下摘录要点. itertools用于高效循环的迭代函数集合. 无限迭代器 迭代器 参数 结果 例子 count() start, [step] start, st ...