开发者社区> 青衫无名> 正文

Appium滑动问题研究

简介:
+关注继续查看
一、Appium中,经常会遇到会遇到滑动操作,但往往用各种手势操作后还是滑动不了,今天主要讲下如何正确使用appium的手势操作。系统环境为最新的iOS 7.1+ Xcode 5.1
  首先讲下滑动操作的几个基本方法。
  1.swipe操作,主要用于缓慢拖动,代码示例
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> swipeObject = new HashMap<String, Double>();
swipeObject.put("startX", startX);
swipeObject.put("startY", startY);
swipeObject.put("endX", endX);
swipebject.put("endY", endY);
swipeObject.put("duration", duration);
swipeObject.put("element", Double.valueOf(((RemoteWebElement) element).getId()));
js.executeScript("mobile: swipe", swipeObject);
  ①X,Y可为coordinator,也可以是percent,duration单位为秒
  ②可以指定的element,也可以不指定
  ③appium mac端有swipe的按钮可以试下
  2.flick操作,类似swipe,但没有duration,用于快速滑动,如ViewController的切换,代码示例
JavascriptExecutor js = (JavascriptExecutor) driver;
HashMap<String, Double> flickObject = new HashMap<String, Double>();
flickObject.put("startX", 0.8);
flickObject.put("startY", 0.5);
flickObject.put("endX", 0.2);
flickObject.put("endY", 0.5);
flickObject.put("element", Double.valueOf(((RemoteWebElement) element).getId()));
js.executeScript("mobile: flick", flickObject););
  3.scroll操作,专为iOS 7.x而生,官方的解释如下
  An unfortunate bug exists in the iOS 7.x Simulator where ScrollViews don't recognize gestures initiated by UIAutomation (which Appium uses under the hood for iOS). To work around this, we have provided access to a different function, scroll, which in many cases allows you to do what you wanted to do with a ScrollView, namely, scroll it!
  简而言之,iOS 7的系统ScrollView无法识别手势操作,使用scroll方法可完美替代,代码见例子
  二、接下来以三个不同app的引导图为例,分别为看游戏,云阅读和云音乐,演示下不同方法实现的滑动操作
  1.看游戏,引导图以ScrollView引导,只需要使用srcoll方法即可
  JavascriptExecutor js = (JavascriptExecutor) driver;
  HashMap<String, String> scrollObject = new HashMap<String, String>();
  scrollObject.put("direction", "right");
  js.executeScript("mobile: scroll", scrollObject
  2.云音乐,引导图以ScrollView引导,分别为4张image
  如上所示,如果使用swipe或flick方法是不可以滑动引导图的,而用Scroll的方向模式也不行,这里采用如下方法
  JavascriptExecutor js = (JavascriptExecutor) driver;
  WebElement  element = driver.findElementByXPath("4张image的xpath路径");
  HashMap<String, String> scrollObject = new HashMap<String, String>();
  scrollObject.put("element", ((RemoteWebElement) element).getId());
  js.executeScript("mobile: scroll", scrollObject);
  3.云阅读,云阅读的引导图并不是存在于ScrollView中,而是专门有一个UIAElement存放,那就只需要用swipe拖动这个UIAElement就好了,如图所示。
  代码见swipe方法。


最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
App自动化测试|Appium元素定位工具
App自动化测试|Appium元素定位工具
51 0
软件测试|selenium屏幕操作事件TouchActions
软件测试|selenium屏幕操作事件TouchActions
41 0
(3.5)HarmonyOS鸿蒙上下左右方向滑动
(3.5)HarmonyOS鸿蒙上下左右方向滑动
67 0
干货|app自动化测试之Appium WebView 技术原理
干货|app自动化测试之Appium WebView 技术原理
202 0
Appium自动化(7) - 控件定位工具之Appium 的 Inspector
Appium自动化(7) - 控件定位工具之Appium 的 Inspector
332 0
Appium自动化(8) - 可定位的控件属性
Appium自动化(8) - 可定位的控件属性
83 0
Appium自动化(6) - 控件定位工具之uiautomatorviewer 的详细介绍
Appium自动化(6) - 控件定位工具之uiautomatorviewer 的详细介绍
114 0
干货|app自动化测试之Appium WebView 技术原理
混合应用测试或微信小程序测试,都会涉及到 WebView 组件,这节内容将分析一下 WebView 的技术原理。首先通过日志分析查看 Appium 的运行过程。 ## WebView日志分析 要想查看 ChromeDriver 的日志,需要在 Capability 里开启 一个开关项 showChromedriverLog。让 Appium 运行测试用例时能够生成 ChromeDrive
105 0
Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动、拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等。这些需要针对控件元素的滑动操作,或者点至点、元素至元素之间的滑动操作,使用swipe方法显然不是很方便,这时候就可以用到appium里提供TouchAction类和MultiAction类。
179 0
Python+Appium自动化测试(8)-swipe()滑动页面
app自动化测试过程中,经常会遇到滑动屏幕操作,appium框架的话我们可以使用webdriver提供的swipe()方法来对屏幕页面进行上滑、下滑、左滑、右滑操作。
188 0
+关注
青衫无名
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载