Appium中使用swipe方法时候出现的问题建议使用flick方法

  在最初使用Appium1.0.0.3版本的时候,中间在写测试代码的时候,需要用到swipe方法来处理屏幕的滑动效果,代码如下:

 try {
          JavascriptExecutor js = (JavascriptExecutor) driver;
          HashMap<String, Double> swipeObject = new HashMap<String, Double>();
          swipeObject.put("startX", 0.95);
          swipeObject.put("startY", 0.5);
          swipeObject.put("endX", 0.05);
          swipeObject.put("endY", 0.5);
         swipeObject.put("duration", 2000);
          for(int i=1;i<=touchCount;i++)
          {   System.out.println("开始第"+i+"次滑动!");
              driver.executeScript("mobile:swipe", swipeObject);
              waitPage(5);
          }
         } catch (WebDriverException ex) {
              System.out.println("执行滑动操作异常...");
              ex.printStackTrace();
          }

问题来了,问题如下:

info: [debug] Appium session started with sessionId 766660cc-2416-4f93-8a34-98c92b6fac6b

 info: <-- POST /wd/hub/session 303 31669.348 ms - 9
 info: --> GET /wd/hub/session/766660cc-2416-4f93-8a34-98c92b6fac6b {}
 info: [debug] Responding to client with success: {"status":0,"value":..............

以下记录的是分析解决的办法和步骤:

1、首先是百度搜索,结果无果;

2、既然是有异常抛出,肯定是代码中抛出来的啊,于是转向去Appium官网去查看(https://github.com/appium/appium),该地方有源码

\


此时便可以查找到错误信息。错误信息所在的位置,如图:

\

此时去看我的源码(位置:C:Appiumnode_modulesappiumlibservercontroller.js)

错误代码在964行:

\


此时可以继续分析了,我传入的cmd明显就是"swipe",此时在代码中搜索“mobileCmdMap”,搜索到的结果如下:

\

此时便发现了问题,原因是在“mobileCmdMap”中没有swipe。

但是到Appium1.2.4.1中发现却是有此方法的(但是到了Appium的1.3.4.1的版本又没有swipe方法):


 所以最终总结在写测试代码中,对于滑动的操作还是建议使用“mobile: flick”,而不建议使用“mobile: swipe”.



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值