zoukankan      html  css  js  c++  java
  • 问题(一)升级Appium最新遇到滑动的坑

    Appium的JAVA客户端更新到java-client 6.0.0-BETA3后,发现其中有关于界面滑动(swipe TouchAction)方面的升级(也有可能在之前的版本已经更新过类似的内容,没仔细看),跟以前旧版本的使用方法不太一样。

    新版本的java-client已经取消swipe方法,以前在老版本中使用这个方法的同学都可以忘记他了,所以可以改用TouchAction的方法替代界面滑动,但是同时我也发现,很多TouchAction类中的很多老方法也都已经弃用,具体可以参考这边的官方说明文档:

    https://static.javadoc.io/io.appium/java-client/6.0.0-BETA2/io/appium/java_client/TouchAction.html

    大概说一下,以前直接使用int类型(XY轴)去定位还有用到Duration类型的方法,基本全部废弃了,现在都改用类似下面这种方式,也就是使用了PointOption.point(X坐标, Y坐标),目前看到的能使用的API只有下面的几个了,其实是整个API蛮得更加简洁了。

    坐标长按

    拖动

    按住坐标

    持续时间

    点击坐标

    具体代码如下:

    怎么去初始化TouchAction

    AndroidTouchAction action = new AndroidTouchAction(driver);

    点击如下坐标

    action.press(PointOption.point(23, 22))

    点击如下坐标,持续N秒

    int nanos=(int) (second*1000);

    Duration duration = Duration.ofNanos(nanos);

    action.press(PointOption.point(23, 22)).waitAction(WaitOptions.waitOptions(duration))

    下面是Android示例拖动当前页面向下滚动,亲测通过,如果是IOS,估计也只是把AndroidTouchAction 换成IOSTouchAction而已,没有测试IOS,有兴趣的同学可以试试:

    int nanos=(int) (1.5*1000);

    Duration duration = Duration.ofNanos(nanos);

    int width = ad.manage().window().getSize().width;

    int height = ad.manage().window().getSize().height;

    AndroidTouchAction action = new AndroidTouchAction(ad);

    action.press(PointOption.point(width/2, height*3/4)).waitAction(WaitOptions.waitOptions(duration)).moveTo(PointOption.point(width/2, height/4)).release().perform();

    上述代码用到的moveTo方法,我在使用中也碰到问题,如果只需要拖动一次的时候,是没有问题的。但是当我连续几次拖动时,坐标的数值出现了问题。

    比如代码:

    AndroidTouchAction action = new AndroidTouchAction(ad);

    action.press(PointOption.point(300, 700)).waitAction(WaitOptions.waitOptions(duration)).moveTo(PointOption.point(150, -250)).waitAction(WaitOptions.waitOptions(duration)).moveTo(PointOption.point(-250, 150)).release().perform();

    如下图所示:当连续几次moveTo时,传入的坐标不再是相对坐标了,而是前一个坐标的偏移坐标。

    按照API文档,moveTo方法说明,里面的坐标就是相对坐标,所以这里是否是API的一个BUG?或是故意为之?有待后续版本的验证了。

    有使用连续moveTo的要注意别掉坑里面了。

  • 相关阅读:
    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结
    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
    jQuery UI组件库Kendo UI使用技巧小分享
    Kendo UI ListView模板功能,让Web开发更轻松
    UI组件套包DevExpress ASP.NET Core v20.2新版亮点:全新的查询生成器
    Devexpress WinForms最新版开发.NET环境配置Visual Studo和SQL Server对应版本
    全新的桌面应用数据可视化呈现方式,Sankey Diagram控件你了解多少?
    java中的递归方法
    连接数据库查询 将查询结果写入exce文件中
    java连接mysql数据查询数据
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8478018.html
Copyright © 2011-2022 走看看