1024Appium app自动化测试经验分享-使用press() + move_to() 九宫格

今天把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的值有疑问,现在总结下经验:

  1. press(x,y)传入的是绝对坐标;
  2. 单步执行move_to(x,y) 是 传入绝对坐标;
  3. 多步执行move_to(x,y) 是 传入相对坐标;

在这里插入图片描述

这是官方文档给出的move_to()的资料。没看很懂,所以才会自己去摸索。没去借鉴大佬们的经验,单单自己去想、去试。总算有点自己的收获,很欣喜。
(文档路径(我电脑的):C:\Users\admin\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\appium\webdriver\common)

交流技术 欢迎+QQ 153132336 zy

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/83349547