在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素。

1,通过绝对坐标定位(不推荐)

在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362)

2,通过相对坐标定位(推荐)

更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需要获取相对坐标。

2.1,获取相对坐标的思路:
1,选择任意一台测试手机(或模拟器)

2,获取需要定位的点的绝对坐标(x1, y1)

3,获取当前测试机屏幕的宽度(w1)、高度(h1)

4,获取该点横坐标与屏幕宽的比(x1/w1),纵坐标与屏幕高的比(y1/h1)

5,更换测试机后,获取新的测试机屏幕的宽(w2),高(h2)

6,计算新测试机上该点横坐标x2=w2 * (x1/w1),纵坐标y2 = h2 * (y1/h1)

2.2,点击A点代码如下:

点击绝对坐标

# 点击绝对坐标时的代码,测试机屏幕宽1080,高2340
driver.tap(542, 1362)

点击相对坐标

# 重新封装点击A点相对坐标的方法
def tapA(driver):# 比例系数x = 542/1080y = 1362/2340# 获取新测试机屏幕宽、高w = driver.get_window_size()['width']h = driver.get_window_size()['height']# 屏幕宽高乘以A点的比例系数,即可得A点在新测试机上坐标driver.tap(x*w, y*h)

需要注意:

1,webdriver中提供坐标点击方法tap(),而元素点击方法则是click();

2,区别于TouchAction类中的tap()方法,不需要构造TouchAction对象,driver对象调用即可。

如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

Python+Appium自动化测试-通过坐标定位元素相关推荐

  1. Appium+Python appium启动夜神模拟器定位元素(三)

    ① 目的 使用appium启动夜神模拟器定位元素 ② 环境 Python+Appium+Android模拟器 ③配置启动项 1.platformName:Android //设备型号 2.platfo ...

  2. appium使用相对坐标定位元素

    最近在用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,这样就只能通过相对坐标来进行定位了.但是,问题又来了:如何获取元素的坐标呢? 在网上找了半天也没找到相 ...

  3. [607]appium根据屏幕大小滑动界面|通过坐标定位元素

    文章目录 appium根据屏幕大小滑动界面 通过坐标定位元素 appium根据屏幕大小滑动界面 driver.get_window_size() 获取屏幕的宽.高: driver.swipe() 从坐 ...

  4. Python+Appium自动化测试之toast定位

    目录 一. 前言 二. 环境 三. toast定位准备与定位方法 1. 准备 2. 定位方法 四. 示例代码 一. 前言 在app自动化测试的过程中经常会遇到需要对toast进行定位,最常见的就是定位 ...

  5. python+appium自动化测试:输入中文失败的解决办法(只针对夜游模拟器)

    关于写python+appium自动化测试脚本时,输入不了中文的问题,在网上百度了很多,都是加入下面2行代码: caps["unicodeKeyboard"] = "Tr ...

  6. 【Python+Appium】开展自动化测试(十二)通过坐标定位元素

             目录 前言 1,通过绝对坐标定位(不推荐) 2,通过相对坐标定位(推荐) 写在最后 前言 在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能 ...

  7. python+appium自动化测试元素定位

    关于app自动化测试,元素定位工具有三个: appium自带的Appium Inspector工具 Android ADT原生的工具 python版uiautomator2中的weditor 由于我常 ...

  8. Appium相对坐标定位元素

    Appium当前页面为h5页面,UIAutomatorviewer无法获取页面来定位元素,通过坐标模拟点击手机屏幕定位 自动化环境 设备:Android 脚本语言:Python 元素定位 手机坐标定位 ...

  9. appium通过坐标定位元素

    用appium做自动化时发现,有一些元素无法通过uiautomatorviewer进行定位,比如h5页面元素或者有的app元素在uiautomatorviewer中的属性没有唯一标识,这种情况下就只能 ...

最新文章

  1. linux mysql设置开机启动脚本_linux下添加oracle自启动脚本
  2. GIS最新热点以及未来发展热门
  3. NHibernate之旅(10):探索父子(一对多)关联查询
  4. 打造完美的JS树形菜单
  5. MYSQL监控-自带工具Query Profiler的使用
  6. windows7旗舰版系统自带组件IIS搭建ftp
  7. [深度学习] 分布式Horovod介绍(四)
  8. webstorm配置Monokai-Sublime.jar主题
  9. 3.15 晚会—「饿了么」之殇
  10. (62)SPI外设驱动协议(一)(第13天)
  11. 萌新的Python练习实例100例(六)斐波那契数列
  12. 【路径规划】基于matlab改进的蚁群算法机器人栅格地图避障路径规划【含Matlab源码 905期】
  13. 数据抽取oracle_【跟我学】特征抽取算法与应用
  14. 文石电子书设置外挂词典有声英文翻译
  15. elasticsearch启动报错:master not discovered yet
  16. CS1703 C# Multiple assemblies with equivalent xxx... and. Remove one of the duplicate references.
  17. 股票挂钩产品的设计、定价和避险原理
  18. EMI共模电感一般什么材质你知道吗
  19. webpack优化系列七:首屏加载优化
  20. 解决微信小程序调试进入 paused in debugger 状态解决办法

热门文章

  1. Ultra96安装指导和无线配置
  2. 职通未来 The Next One——赴一场不一样的招聘会
  3. 画图软件修改图片分辨率
  4. OpenCV分水岭分割算法2
  5. 清华大学NLP实验室刘知远教授组与华为合作招聘博士后
  6. Mac系统官方资料使用与记录
  7. python画二次函数图像的顶点坐标为_二次函数顶点坐标公式
  8. 蓝牙耳机一个响一个不响怎么办
  9. html复制粘贴的文字自动换行,如何解决Word中粘贴网页上的文字自动换行的现象...
  10. 正厚软件 | 为什么要转行IT?