Android+appium +python 点击坐标tap方法的封装
当常使用的查找点击元素的方法name、id、classname等无法使用时,我们将会采取坐标的点击来实现操作,同样存在一个问题,当手机的分辨率、屏幕大小不一致时,坐标的定位也会不同,因此将采用相对坐标来实现点击。
1、appium/webdriver底层给出的写法示例如下,详细的方法介绍自行查看底层介绍,这里不给出说明。
:Usage:
driver.tap([(, ), (, ), (, )], )
2、常见写法中出现的问题:
手机中查看坐标的方法:开启手机指针位置(设置--关于手机--开发者选项--指针位置),点击某个元素手机顶部显示出坐标。
错误写法一:直接给定想要点击的坐标值:x和y
self.device.tap(,) #如某个元素的坐标x=250,y=465,直接给定坐标写法如下
错误写法二、不清楚值怎么给,将x,y值写2遍,参考底层写法方式,如下:
self.device.tap([(,),(,)],)
执行以上的操作将出现的报错:AttributeError: Driver_Elements instance has no attribute 'tap'
3、正确的点击坐标值获取方法:
打开uiautomatorview,点到要获取的元素上查看右下角的bounds值,则是此元素的坐标值。如下:

写法为:
self.device.tap([(,),(,)],)
4、点击坐标方法的封装
def touch_tap(self,x,y,duration=): #点击坐标 ,x1,x2,y1,y2,duration
'''
method explain:点击坐标
parameter explain:【x,y】坐标值,【duration】:给的值决定了点击的速度
Usage:
device.touch_coordinate(277,431) #277.431为点击某个元素的x与y值
'''
screen_width = self.driver.get_window_size()['width'] #获取当前屏幕的宽
screen_height = self.driver.get_window_size()['height'] #获取当前屏幕的高
a =(float(x)/screen_width)*screen_width
x1 = int(a)
b = (float(y)/screen_height)*screen_height
y1 = int(b)
self.driver.tap([(x1,y1),(x1,y1)],duration)
弊端
通过坐标定位是元素定位的下下下策,实在没办法才用这个,不同的手机分辨率不同,因此适用性不强,这个坐标就不能写死,得算出所在屏幕的比例。
Android+appium +python 点击坐标tap方法的封装的更多相关文章
- 【备档】客户端自动化(主Android Appium + python
之前做分享写的文档,备档~ 0.移动客户端自动化简介 客户端自动化测试的本质 定位对象 · 操作对象 · 校验对象 对象的定位应该是自动化测试的核心,要想操作.校验一个对象,首先应该识别这个对象. 一 ...
- Android模拟屏幕点击input tap替代解决方案
动机解释 本来直接使用 adb shell -> input 即可模拟 键盘事件,触屏事件keyevent ,text,tap 但是手上的这台目标Android机4.0.3系统的input只支持 ...
- Python + Appium 获取当前屏幕的截图方法的封装
使用方法:get_screenshot_as_file(filename),来自于selenium\webdriver\remote\webdiver.py def take_screenShot(s ...
- appium+python自动化26-模拟手势点击坐标(tap)
# 前言: 有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问) 那就拿出绝招:点元素所在位置的坐标 tap用法 1.tap是模拟手指点击,一般页面上元素 的语法有两个参 ...
- appium+python自动化26-模拟手势点击坐标(tap)【转载】
# 前言:有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问)那就拿出绝招:点元素所在位置的坐标 tap用法 1.tap是模拟手指点击,一般页面上元素的语法有两个参数,第 ...
- appium+python自动化37-adb shell模拟点击事件(input tap)
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
- Python图片识别找坐标(appium通过识别图片点击坐标)
***如果只想了解图片相似度识别,直接看第一步即可 ***如果想了解appium根据图片识别点击坐标,需要看第一.二.三步 背景|在做UI测试时,发现iOS自定义的UI控件,appium识别不到. ...
- 『与善仁』Appium基础 — 27、模拟手势点击坐标
目录 1.模拟手势点击坐标 2.tap()用法 3.练习 4.弊端 1.模拟手势点击坐标 在定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?(面试经常会问) 那就拿出绝招:点击元素所在位置的 ...
- appium+python自动化24-滑动方法封装(swipe)
swipe介绍 1.查看源码语法,起点和终点四个坐标参数,duration是滑动屏幕持续的时间,时间越短速度越快.默认为None可不填,一般设置500-1000毫秒比较合适. swipe(self, ...
随机推荐
- spring3.1文档目录翻译
整理google共享磁盘找到了2014年翻译的spring官方文档的目录,分享出来可能会对英语不好的同学有些帮助吧. spring3.1官方文档目录-中文 spring3.1官方文档-英文 关于作者
- 常常搞不清楚SQLServer中的sp_columns来看一看
The sp_columns catalog stored procedure is equivalent to SQLColumns in ODBC. The results returned ar ...
- leetcode-判断回文数,非字符串算法(java实现)
link: https://leetcode-cn.com/problems/palindrome-number/description/ 问题: 判断一个整数是否是回文数.回文数是指正序(从左向右) ...
- php面向对象中的魔术方法
原创,转载请注明出处 在 PHP 中以两个下划线开头的方法,__construct(), __destruct (), __call(), __callStatic(),__get(), __set( ...
- 什么是C语言。C语言入门
C语言是一种通用计算机编程语言,应用广泛. C语言的设计目标是提供一种编程语言,它可以编译,处理低级内存,生成少量机器代码,并以简单的方式运行,而无需任何操作环境的支持.虽然C语言提供了许多低级处理功 ...
- C#实现的HttpGet请求
话不多说,代码贴上: /// <summary> /// HTTP Get请求 /// </summary> /// <param name="url" ...
- LESS的简单介绍
对于一些布局和样式比较复杂的网页,如何构建一个健康.优雅的CSS文件是一个很令人苦恼的问题.在书写静态页面的时候,我总是遇到布局结构累赘和重复样式复用性不高的问题,当然,对于这些问题归根究底还是要多联 ...
- 微信小程序开发框架技术选型
目前微信小程序开发有三种方式,原生微信小程序,使用mpVue或wepy微信小程序开发框架. 三种开发方式横向对比资料如下:
- mac 登录亚马逊云服务器报错:Permission denied (publickey).
申请的亚马逊云服务器EC2,实例为ubuntu系统 一.打开终端,定位到放置密钥的文件夹: 二.确保私有秘钥不是公开可见的: p.p1 { margin: 0.0px 0.0px 0.0px 0.0p ...
- QT5:C++实现基于multimedia的音乐播放器(二)
今天接着上一篇来实现播放器的槽函数. 先来实现播放模式,槽函数如下: //播放模式 void Music::musicPlayPattern() { //z=++z%3; ) { //顺序播放 pla ...