实现思路:
1.获取九宫格patterview的起始坐标x、y
2.获取九宫格patterview的宽度(width)、高度(height)
3.九宫格的九个格子大约平均把patterview的长、宽平均分成了4个等分,宽度间隔为width/4、高度间隔为height/4
4.第一个格子的坐标为(x+width/4, y+height/4)
5.每次滑动的时候,就相当于横坐标(纵坐标)的变化量△x为width/4(height/4)
6.使用TouchAction、moveTo方法实现滑动即可
实现代码:
def test_cKabao(self):
self.driver.find_element_by_id('cn.xxxx.xxxx.android:id/xxxx_tv_card_package').click()
time.sleep(1)
patterview = self.driver.find_element_by_id('cn.xxxx.xxxx.android:id/xxxx_card_pw_patterview') #获取九宫格控件
x = patterview.location.get('x') #九宫格的起始坐标x
y = patterview.location.get('y') #九宫格的起始坐标y
//获取九宫格的宽度、高度
width = patterview.size.get('width') #九宫格的宽度
height = patterview.size.get('height') #九宫格的高度
# print(x, y, width, height)
xstep = width/4 #宽度间隔
ystep = height/4 #高度间隔
#九宫格第一个格子的坐标(即是九宫格的起始坐标)
xStartPoint = x + xstep
yStartPoint = y + ystep
//使用TouchAction方法实现滑动解锁
TouchAction(self.driver).press(x=xStartPoint, y=yStartPoint).wait(1000).move_to(x=0, y=ystep).wait(1000).move_to(x=0, y=ystep).wait(1000).move_to(x=xstep, y=0).release().perform()
time.sleep(5)
RelativeLayout = self.driver.find_element_by_class_name('android.widget.RelativeLayout')
RelativeLayout.find_element_by_id('cn.xxxx.xxxx.android:id/xxxx_base_iv_back').click()
# self.driver.find_element_by_id('cn.xxxx.xxxx.android:id/xxxx_base_iv_back')
print('test_cKabao 测试成功')
time.sleep(3)