Appium - iOS 各种问题汇总

作者: Max.Bai

时间: 2014/10

Appium - iOS 各种问题汇总

 1. Appium 滑动:

swipe 有三种方式:

第一种: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单位为秒, Android 可以设置0.1-60,iOS设置0.5-60

可以指定的element,也可以不指定

第二种: flick 区别swipe是没有duration

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););

第三种: scroll only for iOS scrollView

scroll方向滑动:

JavascriptExecutor js = (JavascriptExecutor) _driver;

HashMap<String, String> scrollObject = new HashMap<String, String>();

scrollObject.put("direction", sDrection);

js.executeScript("mobile: scroll", scrollObject);

方向接受参数:Right, Left, Up, Down

scroll对象滑动:

JavascriptExecutor js = (JavascriptExecutor) driver;

WebElement  element = driver.findElementByXPath("scrollview中元素的xpath");

HashMap<String, String> scrollObject = new HashMap<String, String>();

scrollObject.put("element", ((RemoteWebElement) element).getId());

js.executeScript("mobile: scroll", scrollObject);

2. 隐藏键盘hideKeyboard()

为了避免输入框输入内容后键盘遮挡控件,需要对键盘隐藏

Android可以设置如下cap来输入中文,同时能达到隐藏键盘的效果,但是这个设置只能针对Android。

capabilities.setCapability("unicodeKeyboard", true);

capabilities.setCapability("resetKeyboard", true);

iOS 就必须掉用方法hideKeyboard()

默认是点非输入框的地方键盘自动隐藏,如果不生效(开发没有做这个效果),就需要使用其他方法,比如:通过点击“Done”来隐藏键盘

hideKeyboard(HideKeyboardStrategy.PRESS_KEY, "Done")

3. Xcode 版本

Appium 1.2.* 对应Xcode5.0

Appium 1.3  对应Xcode6.0

可能出现错误:

Error: Could not find Automation.tracetemplate

Error: Could not find ios simulator binary at /application/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator

4. Sendkeys vs setValue

Sendkeys iOS无法输入

可以试用setvalue代替

((MobileElement)_driver.findElement(by)).setValue(sText);

5. isAppInstalled/removeApp/installApp

isAppInstalled这个方法在Android里面可以使用(模拟器和真机都试过)

但是在iOS里面使用模拟器返回值总是false,没有错误信息,后来查看源代码发现

cb(new Error("You can not call isInstalled for the iOS simulator!"));

同样removeApp/installApp 都是

6. App path 设置

官网说可以用remote URL设置cap 的app

官网说明如下:

app    The absolute local path or remote http URL to an .ipa or .apk file, or a .zip containing one of these. Appium will attempt to install this app binary on the appropriate device first. e.g.: /abs/path/to/my.apk or http://myapp.com/app.ipa

我为了方便集中管理安装程序所以使用了http://sssss/x.zip

坑爹的问题来了,Android根本就不支持,报错找不到提供的app

iOS 还好,可以安装,但是测试中发现好多控件和放在本地完全不是一个效果。。。

所以还是老老实实的使用本地设置吧

ps: 貌似1.3解决了Android http 的问题,还没有验证

7. sudo安装Appium后无法启动

sudo npm install -g appium后果

Appium will not work if used or installed with sudo

网上有高人解决了这个问题

过程如下:

步骤1. 改变node的所有者

cd /usr/local/lib

sudo chown -R bixiaopeng node_modules

步骤2. 卸载appium

npm uninstall appium -g

步骤3. 重新安装appium

npm install -g appium

步骤4. 启动

appium

原链接:http://blog.csdn.net/wirelessqa/article/details/29188665

时间: 2024-12-11 05:39:36

Appium - iOS 各种问题汇总的相关文章

Appium IOS 自动化测试初探

手机平台的自动化测试工具很多,之前研究过了安卓和苹果的原生自动化测试框架,经一些同事介绍,貌似Appium是个不错的工具. 想记录一下研究的结果,也算是篇干货的文章 在网上也看了一些视频,个人认为这个自动化测试的特点就是 1. 多编程语言支持 相对于传统的IOS UIautomation只能支持js语言,Appium起到了一个翻译的作用,它其实是一个CS架构,服务器和IOS模拟器或真机直接通讯,客户端和服务器之间用HTTP协议进行交互,所以客户端用什么语言其实不重要.下面会有一个python编程

超全!iOS 面试题汇总

超全!iOS 面试题汇总 2015-10-20 CocoaChina 作者:Job_Yang 之前看了很多面试题,感觉要不是不够就是过于冗余,于是我将网上的一些面试题进行了删减和重排,现在分享给大家.(题目来源于网络,侵删) 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好

iOS第三方库汇总[转载]

iOS第三方库汇总[转载] 字数2179 阅读334 评论0 喜欢29 简介 此文用于总结,本人使用过或者收藏过的Github第三方类库,以便日后查阅,也便他人借鉴. 资料整理中不定期更新... 开源项目 CodeHub browse and maintain your GitHub repositories on any iOS device! Open-Source iOS Apps 开源iOS apps列表 APP相关 iVersion 提示版本更新 BonMot 字体相关的库,设置字体样

【IOS】Mac和IOS开发资源汇总

本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按**command+D**). 今天收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大家有知道不错的站点,可以告诉我.  目录 1.苹果官方文档 2.邮件列表 3.论坛 4.网站 5.博客 6.大会 7.播客和录像 正文 1.苹果官方文档 构建iOS程序:下面的这篇文章介绍了 iOS 程序开发的过程: Start Developing iOS Apps Today 构建Mac OS X程序:下面这篇文章介

appium IOS真机测试

看了 http://blog.csdn.net/today520/article/details/36378805 的文章,终于在真机上面测试成功. 由于没有开发者账号,不能发布应用到机器上面.所以就用了网易新闻的客户端来测试 首先得到bundleId. 在应用的Info.plist文件中可以找到 测一把,看看是否正确 https://itunes.apple.com/lookup?bundleId=com.netease.news 成功会返回应用应用信息,json格式 首先终端命令启动appi

iOS手机功能汇总

开发中经常会调用手机功能,今天来汇总一下,若有不足欢迎大家指出,下面分别介绍如下功能 : 电话 短信 邮件 通讯录 定位 跳转应用 跳转App Store 打开其他文件 电话 调用电话有下图两种不同样式,相同的是,通话结束后均会返回你原界面1- 直接跳至拨号界面2- 先弹框提示,用户确认后再跳至拨号界面 直接跳至拨号界面 NSURL *url = [NSURL URLWithString:@"tel://10000000"]; [[UIApplication sharedApplica

Mac和iOS开发资源汇总

转自:http://www.tairan.com/archives/4647 本文主要汇集一些苹果开发的资源.会常常更新.建议大家把这篇文章单独收藏(在浏览器中按command+D). 文件夹 1.苹果官方文档 2.邮件列表 3.论坛 4.站点 5.博客 6.大会 7.播客和录像 正文 1.苹果官方文档 构建iOS程序:以下的这篇文章介绍了 iOS 程序开发的过程: Start Developing iOS Apps Today 构建Mac OS X程序:以下这篇文章介绍了Mac OS X开发的

mac 下 配置appium +ios真机环境

mac系统:10.11.6 xcode:7 appium:1.5.3 iphone: 6 p 1.搭建 appium 安卓的环境: 1.jdk 2.sdk 3.appium 4.配置环境变量 mac下的环境变量是在 登录用户的 根目录下 cd ~/ 下的 .bash_profile中 没有自己 创建一个 8 # Setting PATH for Python 3.5 9 # The original version is saved in .bash_profile.pysave 10 PATH

Appium IOS

在mac下配置appium的自动化测试环境因为查了下appium针对ios的自动化测试,网上的资料比较少,且说得不是很清楚,故这篇文章主要介绍怎样使用appium自动化测试自己的项目.这些操作步骤均是自己亲自操作并实践通过的 这里以自己实现的一个简单的ios app来一步步介绍这篇文章先介绍在模拟器下运行的情况 1.编译ios app $ cd /Users/xxx/Documents/lesFour/ $ xcodebuild -sdk iphonesimulator注:I.官网上的介绍中是这