今天把DDM的断言也做好了,中午跑的结果也比较满意。
(类似)九宫格 perss() + move_to()
图片的情景是 范围和年龄都有一个(两个)滑动的原圈,只可以在同一水平位置滑动,无法使用点击来更换圆圈的位置;年龄是有2个圆圈,看似难度差不多,其实不然。
有了这个疑问后,我始终忽略了运用坐标定位 press() + move_to() 这个实现的方法,所以就一直没解决,这两天再借鉴同事的思路后,我才反应过来。下面是代码:
def hongmi_fanwei1(self):
# TODO 单步move_to()是 绝对坐标
from appium.webdriver.common.touch_action import TouchAction
TouchAction(self.driver).press(x=930, y=670).wait(300).move_to(x=560, y=670).release().perform() # 是对的
# TouchAction(self.driver).press(x=930, y=670).wait(300).move_to(x=-370, y=0).release().perform() # 是错的
TouchAction(self.driver).press(x=560, y=670).wait(300).move_to(x=200, y=670).release().perform()
TouchAction(self.driver).press(x=200, y=670).wait(300).move_to(x=1000, y=670).release().perform()
self.xin_find_element(By.ID, self.ouyu_saixuan_wancheng_id).click()
def hongmi_fanwei2(self):
# 多步move_to()是 相对坐标
from appium.webdriver.common.touch_action import TouchAction
# 第一个是错的
# TouchAction(self.driver).press(x=930, y=670).wait(300).move_to(x=560, y=670).wait(300).move_to(x=200, y=670).wait(300).move_to(x=560, y=670).wait(300).move_to(x=1000, y=670).wait(300).release().perform()
# 第二个是对的
TouchAction(self.driver).press(x=930, y=670).wait(500).move_to(x=-370, y=0).wait(500).move_to(x=-360, y=0).wait(500).move_to(x=360, y=0).wait(500).move_to(x=440, y=0).wait(500).release().perform()
self.xin_find_element(By.ID, self.ouyu_saixuan_wancheng_id).click()
有朋友做了九宫格的实践后,我才对于move_to()里面需要传入的x,y的值有疑问,现在总结下经验:
- press(x,y)传入的是绝对坐标;
- 单步执行move_to(x,y) 是 传入绝对坐标;
- 多步执行move_to(x,y) 是 传入相对坐标;
这是官方文档给出的move_to()的资料。没看很懂,所以才会自己去摸索。没去借鉴大佬们的经验,单单自己去想、去试。总算有点自己的收获,很欣喜。
(文档路径(我电脑的):C:\Users\admin\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\appium\webdriver\common)
交流技术 欢迎+QQ 153132336 zy