appium通过坐标定位元素
用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,比如h5页面元素或者有的app元素在uiautomatorviewer中的属性没有唯一标识,这种情况下就只能通过相对坐标来进行定位了。
如何获取元素的坐标呢?
具体方法:手机设置--开发者选项--指针位置
开启指针位置之后,点击手机屏幕就会显示该位置的具体坐标,这样就获取到了元素的绝对坐标,然后通过webdriver的tap()函数点击该坐标就可以了。
但是此时,我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件就要用到相对坐标了,具体方法如下:
1.获取需定位元素的绝对坐标(x1,y1),开启指针位置后,通过点击定位元素位置获取坐标;
2.获取测试手机的屏幕大小(x2,y2),开启指针位置后,点击手机屏幕右下角,获取坐标
3.得出该定位元素的相对位置坐标系x=x1/x2,y=y1/y2(控件在当前手机的坐标位置除以当前手机的最大坐标就是相对的系数)
4.获取当前手机的屏幕大小(n,m),通过driver.get_window_size()['width'],dirver.get_window_size()['height']分辨获取当前手机的n、m坐标;
5.获取指定控件在测试手机中的坐标:(x*n,y*m)
6.获取到坐标之后同样使用tap()函数点击该控件。
代码实现如下:
def taptest(driver):# 设定系数,控件在当前手机的坐标位置除以当前手机的最大坐标就是相对的系数了a1 = 188.8/1069b1 = 941.5/1916# 获取当前手机屏幕大小X,YX = driver.get_window_size()['width']Y = driver.get_window_size()['height']# 屏幕坐标乘以系数即为用户要点击位置的具体坐标driver.tap([(a1*X, b1*Y)])
appium通过坐标定位元素相关推荐
- Appium相对坐标定位元素
Appium当前页面为h5页面,UIAutomatorviewer无法获取页面来定位元素,通过坐标模拟点击手机屏幕定位 自动化环境 设备:Android 脚本语言:Python 元素定位 手机坐标定位 ...
- [607]appium根据屏幕大小滑动界面|通过坐标定位元素
文章目录 appium根据屏幕大小滑动界面 通过坐标定位元素 appium根据屏幕大小滑动界面 driver.get_window_size() 获取屏幕的宽.高: driver.swipe() 从坐 ...
- 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
appium相对位置定位元素----父节点/兄弟节点定位 发布时间:2020-06-30 05:51:41 来源:51CTO 阅读:5620 作者:niedongri 讲一下定位手机app上元素时定位 ...
- Python+Appium自动化测试-通过坐标定位元素
在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素. 1,通过绝 ...
- 【Python+Appium】开展自动化测试(十二)通过坐标定位元素
目录 前言 1,通过绝对坐标定位(不推荐) 2,通过相对坐标定位(推荐) 写在最后 前言 在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能 ...
- appium使用相对坐标定位元素
最近在用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,这样就只能通过相对坐标来进行定位了.但是,问题又来了:如何获取元素的坐标呢? 在网上找了半天也没找到相 ...
- appium+python测试app使用相对坐标定位元素
我们获取到的是绝对坐标,如果换一个屏幕分辨率不同的手机那这个坐标自然会发生变化,要实现不同手机均能实现点击同一控件自然要用到相对坐标了,具体方法如下: 1.获取当前空间的绝对坐标(x1,y1),开启指 ...
- airtest获取手机分辨率,通过相对坐标定位元素
airtest做自动化时,在不同手机间由于分辨率不同,绝对坐标就不适用了,需要通过相对坐标来定位,这就需要获取当前手机的分辨率,其实只需要一句代码即可获取当前手机的分辨率,下面是相关代码: w,h=d ...
- appium元素坐标定位TouchAction
网上有很多人说的各种appium定位方法,但是我感觉有的不好用,有的不能用,所以整理了一个简单的定位方式,通过坐标定位 1.需要用到UIautomator(Andriod7.0版本需要UIautoma ...
最新文章
- [NC19798]区间权值
- html中after对应的样式怎么写,css – 如何创建内联样式:before和:after
- 数字后端——低功耗单元库
- 定西市计算机考试,2019年3月甘肃省定西市计算机等级考试时间
- java sax解析xml_【转】java使用sax解析xml文件
- 如何设制 select 不可编辑 只读
- libuv:多平台支持库-异步I / O
- 手机老显示存储空间不足该咋办?可删除哪些内容来增加存储空间?
- 数据结构与算法之-----图(搜索算法)
- python 类函数 成员函数_python内置函数类型,如何为新类型定义成员函数?
- 全国最新省市县联动mysql_全国省市县区三级联动数据库mysql3500条数据-html资源网...
- 分享一个我常用的信息差赚钱渠道
- Mbps和MB/s之间的换算
- 夫妻宫十星所暗示的未来另一半
- 地图刷新 android,android – 如何刷新谷歌地图.
- html怎么做qq空间主页,如何设计qq空间
- [答疑]工程管理组织的业务用例图
- 【工大SCIR】对话中的情感分析与生成简述
- 「滴滴-橙心优选」秋招面试复盘总结
- 探索者系列_百度百科
热门文章
- 如何旋转PDF文件页面,一分钟教你学会
- 【案例7】NC+ORACLE+系统初始化的完整操作顺序
- 程序员如何搭建自己的知识体系?
- Nvidia GeForce GTX 1650不支持OpenGL4.6
- Android蓝牙音乐
- [angular1.6]Error: transition superseded ui-router 在angular1.6 报错误问题解决
- Kafka集群搭建过程(kafka2.5+eagle)
- Kafka09:【案例】Flume集成Kafka
- 周记---学会推迟满足感 享受长远的趣味
- objective-c感悟(四)class、catagory、class extension、optional