在使用appium做app自动化测试的过程中,可能会遇到元素的属性值不是唯一的情况,导致不能通过find_element_bi_xx()方法定位元素,这个时候我们就可以通过坐标来定位元素。
1,通过绝对坐标定位(不推荐)
在手机(或模拟器)的开发者选项里打开指针位置,任意点的绝对坐标都能获取到,如下A点的坐标为(542, 1362)
1240
2,通过相对坐标定位(推荐)
更换不同分辨的测试机后,之前获取的手机某个位置点的绝对坐标就会改变,这样每次更换测试机都需要更改坐标,显然是不方便代码的维护,所以就需要获取相对坐标。
PyAutoGUI模块通过屏幕xy坐标系统确定目标位置,控制鼠标和键盘发送虚拟击键和鼠标点击,完成点击按钮、填写表单等操作pyautogui的鼠标函数使用x,y坐标,原点在屏幕左上角,向右x坐标增加,向下y坐标增加,所有坐标都是正整数,没有负数坐标。
使用pip安装
python源码
import time,os
import pyautogui as pag
try:
while True:
print('点击 Ctrl-C 结束')
# 获取屏幕的尺寸
screenWidth, screenHeight = pag.size()
x, y = pag.position()
#返回鼠标的坐标
print('屏幕尺寸: (%s %s), 鼠标坐标 : (%s, %s)' % (screenWidth, screenHeight, x, y))
# 每个1s中打印一次 , 并执行清屏
time.sleep(1)
# 执行系统清屏指令
os.system('cls')
except KeyboardInterrupt:
print('结束')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
执行结果
运行结果
脚本思路大概如下:第一步获取整个屏幕尺寸,第二步获取鼠标坐标,打印输出即可,整个获取过程在死循环中,即可实现时刻获取屏幕坐标的需求。
python如何读取矢量图和四个坐标点1、导入相关库包,切换到当前文件夹
2、注册驱动,打开点矢量文件,获取图层
3、打开待写入TXT文件
4、遍历要素
(1)获取当前要素‘ID’和‘cover’字段属性
(2)获取当前点要素对应几何对象和其坐标值X,Y
(3)将ID、cover、X、Y写入TXT文件
(4)清除当前feature缓存并获取下一要素
5、清除DataSource并关闭TXT文件