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

  Inspector中显示如下:

  如上所示,如果使用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/

时间: 2024-11-03 16:45:38

Appium滑动问题研究的相关文章

Java实现仿淘宝滑动验证码研究代码详解_java

通过下面一张图看下要实现的功能,具体详情如下所示: 现在我就来介绍些软件的其它功能.希望大家有所受益. 模拟人为搜索商品 在刷单的时候,不能直接拿到一个商品网址就进入购买页面吧,得模拟人为搜索. 在这一个过程中有两个难点: 1)商品列表的异步加载 ; 2)翻页并且截图; 在园子里,我就不在关公面前耍大刀了. 直接上关键代码: i:搜索商品,并且翻页 public bool? SearchProduct(TaskDetailModel taskDetailData) { bool? result

CSS中的滑动门技术研究

css 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标签导航栏就是其中的一个例子.过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式.现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来.你也许知道CSS可以用来"驯服"无

CSS的滑动门技术研究

  在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标签导航栏就是其中的一个例子.过去,我们频繁的使用这些标签,并已成为了一种非常流行的站点导航方式.现今,在CSS已被广泛支持的前景下,我们可以为我们站点制作出更高质量和更好外观的标签导航栏来.你也许知道CSS可以用来"驯服"无序的

CSS中的滑动门技术

css 原文作者:Douglas Bowman 原文出自:A List Apart 中文翻译:54player.com nobita 版权说明:本文中文翻译版权归译者54player.com nobita所有.需要转载发表的,请先与作者联系 在CSS中,一个经常被人们讨论的先进之处即背景图像的可层叠性,并允许他们在彼此之上进行滑动,以创造一些特殊的效果.根据CSS2.0当前的规定,每一个背景图像都需要各自的HTML元素.在许多情况下,典型的标记已经为一般的接口组件提供了多种元素以供我们使用. 标

移动APP设计研究:手势设计应遵循的原则

文章描述:浅谈移动终端使用之手势操作的设计及研究. 手势是指人类用语言中枢建立起来的一套用手掌和手指位置.形状的特定语言系统. 手持设备中的手势是指,将一系列多点触摸事件综合成为一个单独的事件. 手势操作的优势 1. 直觉化--好的手势设计源于生活经验,易于理解,学习成本低. 2. 快捷高效--减少操作步骤,加快完成任务. 手势在平台上的异同 各平台上手势现状 通用手势能被广泛应用是源于对心理模型的匹配,以及大众对于先入为主的接受度. 基本通用的或其他的手势可发展, 需要遵循设计原则,需要注意的

使用框架和滑动门技术进行网页设计

以前看过一些类似的文章,但这些文章文字在理论上阐述得比较多,没有从技术角度来分析和实现滑动门效果,前段时间心血来潮对此作了一番专门的研究,这里就把我的所得奉献给大家. 一.什么是滑动门技术? 导航按钮 如上图,简单地说,滑动门技术就是:当点击页面上的导航按钮后这个导航按钮的CSS特性发生变化,从而区别于该组的其他导航按钮,提示给操作者,当前浏览的内容就是这个CSS特性发生变化的按钮所指向的内容.这种效果的一大好处在于,在多导航的页面上能够清晰地反映当前浏览内容隶属于哪个栏目或者哪个类,同时给人以

置顶菜单可用性研究 可使网站导航快22%

SirsiDynix公司UX/UI设计师Hyrum Denney在Smashing Magazine上发表了一篇文章<Sticky Menus Are Quicker To Navigate>,分享了自己对"置顶菜单"进行的可用性研究成果,及实现技术和相关挑战.CSDN对该文进行了编译,内容如下: 导航是Web网站中最重要的元素之一,大部分设计师都同意这一点.尽管如此,现在的导航并不总是容易使用.通常,用户必须滚动到网站的顶部才能访问 导航菜单.最近,我在研究"置

触屏手机中手势交互的设计研究

触屏手机作为未来手持移动设备的发展趋势,手势为其主要的交互方式和提高用户体验的方法有着重要的意义.目前触屏手机中手势交互研究正处于初级阶段,笔者作为交互设计师从实践的角度针对本国用户的特点,通过人机工程学原理进行相关数据测量分析,并结合解剖学.认知心理学等相关理论,分析和总结触屏手机中手势交互的设计和运用原则. 1 人机工程学原则 通过实验针对触屏手机中手势操作的相关问题进行定量到定性的研究.筛选被试:选取使用触屏手机3年以上的正常成年人为典型被试.据中科院心理研究所调查数据显示,中国目前右撇子

Android性能优化案例研究(下)

转自 http://www.importnew.com/4065.html 译者前言:在Android性能优化案例研究(上)中,作者Romain Guy将Falcon Pro这款应用作为例子,通过Android现有的工具追踪和分析了其隐藏的性能问题(重绘).下篇作者将会带来如何解决此类问题的方法和思路. 去掉冗余的图层 为 了去掉重绘我们必须首先理解它从哪里产生的.这就轮到Hierarchy Viewer和Tracer for OpenGL大显身手的时候了.Hierarchy Viewer是AD