目录
九宫格定位 x 80, y 488, width 640 height 1048
我遇到的坑-- 之前一直以为 TouchAction 的 move_to 是从 x y 坐标移动到另一个坐标,而不是偏移量,没有理解清楚,所以这里掉坑里了
前言:
Appium是一款开源的自动化测试框架,可以用于测试Android应用程序。它支持多种测试用例格式,包括Appium、Appium-driver、Appium-server等。九宫格手势解锁是一种常见的Android应用程序的解锁方式,通过使用Appium来实现对Android应用程序的九宫格手势解锁测试。
Appium 九宫格手势解锁
使用 Python 来解决
分析九宫格定位
整个九宫格是一个 view
self.driver.find_element_by_id("com.elc:id/gesturepwd_create_lockview")
屏幕大小 x 720, y 1280
九宫格定位 x 80, y 488, width 640 height 1048
计算出大小 x 80 y 488
width = 640-80 width 等于 560
height = 1048-488 height 等于 560
九宫格是正方形
计算出第一个坐标 为了好计算,就把坐标的值全部用整数来计算
p11 = int(x + width / 6), int(y + height / 6)
(173, 581)
计算所有的坐标值
定位方式存在一个字典中
a = {
"解锁提示": "com.elc:id/gesturepwd_create_text",
"九宫格": "com.elc:id/gesturepwd_create_lockview",
"继续": "com.elc:id/right_btn",
}
lock_pattern = self.driver.find_element_by_id(a["九宫格"])
x = lock_pattern.location.get('x')
y = lock_pattern.location.get('y')
width = lock_pattern.size.get('width')
height = lock_pattern.size.get('height')
print(x, y, width, height)
offset = width / 6
p11 = int(x + width / 6), int(y + height / 6)
p12 = int(x + width / 2), int(y + height / 6)
p13 = int(x + width - offset), int(y + height / 6)
p21 = int(x + width / 6), int(y + height