从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是:

http://ios-driver.github.io/ios-driver

http://appium.io/

1、Appium 简介:

Appium 是一个开源的,跨平台的测试框架,可以用来测试移动设备上 Native 或 Hybrid 的应用程序。Appium 同时支持 iOS、Android 和 FirefoxOS 等多种移动平台。

Appium 的工作原理:通过 WebDriver 的 JSON Wire 协议来驱动 iOS 或 Android 系统的 UIAutomator 框架,或基于Gecko 的 Marionette 框架。

Appium 的优势:Appium 在不同移动平台上均使用了标准的自动化 API,所以用户不需要重新编译或者修改 app。Appium 支持 Selenium  WebDriver 能支持的所有绑定编程语言,如 Java,Python,JavaScript,C#,Ruby等

2、Appium 安装

1、使用 Node.js 安装 Appium,命令如下。安装之前应先确认系统中已安装了Node.js

$ sudo npm install -g appium

2、直接从官网下载并解压,地址如下

https://gitbub.com/appium/appium/releases

3、直接下载Appium.dmg文件并解压,这种方式是带 UI 的 app,地址如下

https://bitbucket.org/appium/appium.app/downloads

4、启动Appium

$appium &

启动成功后看到如下信息:

info:Welcome to Appium v0.13.0

info:Appium REST http interface listener started on 0.0.0.0:4723

info -socket.io started

如果下载的是Appium.app 文件,则双击打开即可

3、Appium 的 iOS 配置

1、确保 Mac OS X 的最低版本为 10.7

2、Xcode/iOS 兼容 Xcode 4.6.3/iOS6.1.x,或Xcode 5/iOS 7.x。不要使用高版本的 Xcode 配合低版本的 iOS SDK,如Xcode 5/iOS 6.x

3、确保授权 iOS 模拟器的使用

3.1、如果通过 Node.js 安装Appium ,则运行如下命令即可

$sudo authorize_ios

其中,authorize_ios 是Appium npm 包中的一个二进制文件,授权成功后的信息如下
Enabling DevToolsSecurity

Updating securityy db for developer access

Granting access to built-in simulator apps

Authorization successful

3.2、如果通过在官网下载源码包的方式来运行Appium,则允许如下命令:

$sudo grunt authorize

3.3、如果直接使用Appium.app,在在UI 上操作即可

4、多个 iOS SDK qieh

Appium 使用 Xcode 的 Instruments 来启动 iOS 模拟器,并且默认使用当前安装的 Xcode 的最高版本的 iOS SDK。如果需要在特定的 iOS 上测试,在启动 Appium 之前,需要切换到特定的测试版本上,使用如下命令进行切换:

$sudo xcode-select- -switch/Applications/Xcode.app/Contents/Developer/

4、Appium 的Web app实例

首先确认 iOS 模拟器或真实设备上 Safari 浏览器的 Web Inspector 为打开状态,操作路径为Setting->Safari->Advanced->Web Inspector

接下来启动Appium

$appium &

启动成功后看到如下信息:

info:Welcome to Appium v0.13.0

info:Appium REST http interface listener started on 0.0.0.0:4723

info -socket.io started

以打开百度首页为例,以下为测试用例代码

package com.learningselenium.ios;

import java.net.URL;

import junit.framework.TestCase;

import org.openqa.selenium.remote.DesiredCapabilities;

import org.openqa.selenium.remote.RemoteWebDriver;

public class testiOSAppiumBaidu extends TestCase{

  public void testBaidu() throws Exception{

    DesiredCapabilities safari = new DesiredCapabilities();

    safari.setCapability("app", "safari");

    RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4723/wd/hub"), safari);

    driver.get("http://www.baidu.com");

    String url = driver.getCurrentUrl();

    System.out.println(url);

    driver.close();

  }

}

[Selenium] IOS 之 appium的更多相关文章

  1. 移动端自动化自动化(Android&iOS)——Appium

    Appium-Python 移动端自动化环境搭建 Appium介绍 Appium是一个开源.跨平台的测试框架,可以用来测试原生及混合的移动端应用.Appium支持iOS.Android及Firefox ...

  2. [Selenium] IOS 之 ios-driver

    从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是: http://ios-driver.git ...

  3. iOS simulator+Appium

    Why are you trying to run iOS automation on a real device? That's a bad idea. iOS Automation on a re ...

  4. App自动化测试探索(二)MAC环境搭建iOS+Python+Appium测试环境

    环境搭建要求,MAC 机器一台,要求 Xcode 8.0以上 1. 安装 Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.github ...

  5. appium ,selenium ,webdriver 运行原理与机制

    做测试开发的童鞋都知道,UI自动化你绕不开selenium, webdrvier, appium框架,那么这三者之间有什么关联,它们的原理是什么呢? 简单来说就是: Selenium2  将浏览器原生 ...

  6. Appium+Python3+iOS定位元素

    前言: 最近在做IOS自动化测试,IOS的Appium环境都配置OK,执行起来真的慢,慢到怀疑人生,那么今天就来总结一下IOS定位方式和各个定位方式的速度排序. 据我观察,按查找元素的顺序速度,从快到 ...

  7. selenium与appium怎样联系

    appium是手机app端的自动化,它继承了webdriver(也就是selenium 2)          不过appium仍然需要通过selenium最后做测试工具,但是appium起到了一个连 ...

  8. Appium自动化测试框架研究(2)——搭建IOS环境

    今天的文章讲iOS的Appium环境搭建. 对于iOS而言,只能在Mac笔记本上安装Appium,以及所需要的各种组件. 也许有人会问,能否在Windows系统上使用Appium测试iOS手机,这不就 ...

  9. selenium&appium中的三种等待方式---基于python

    我们在实际使用selenium或者appium时,等待下个等待定位的元素出现,特别是web端加载的过程,都需要用到等待,而等待方式的设置是保证脚本稳定有效运行的一个非常重要的手段,在selenium中 ...

随机推荐

  1. sulime text 常用快捷键总结

    Sublime Text 3汉化中文版主要特色: -语法高亮.代码提示补全.代码折叠.自定义皮肤/配色方案.多便签 -代码地图.多种界面布局与全屏免打扰模式 -完全开放的用户自定义配置与神奇实用的编辑 ...

  2. html5对各浏览器的支持情况

    考虑到HTML5标准的制定原则:新特性基于HTML.CSS.DOM 以及 JavaScript:减少对外部插件的需求(比如Flash):独立于设备等,我们选取了HTML 5的几项主要特性来评价浏览器系 ...

  3. Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]

    一部分题解,算是自己SB了 上午的TC 也是这样 写好了代码,却一直没注意细节,然后以为错了. 此处省100字,ps 貌似紫了,作为一个老菜鸡,终于紫了 A,B 都是语文题 C: 给以一个三角形一样的 ...

  4. java ssh 面试题

    1.什么是hibernate及hibernate工作原理.流程和为什么要用Hibernate? 答: 定义:Hibernate是一个开放源代码的对象关系映射(ORM)框架,它对JDBC进行了非常轻量级 ...

  5. Linux防火墙iptables规则设置(转)

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分.可以直接配置,也可以通过许多前端和图形界面配置. 一.语法 iptables(选项)(参数) 二.选项 -t< ...

  6. 如何更改ORACLE 用户的 expired状态

    ORACLE(113) 版权声明:本文为博主原创文章,未经博主允许不得转载. oracle中, 经常用户的状态会变成locked, expired 等状态, 这种情况下怎么处理呢? 首先,  如果是l ...

  7. 30 分钟编写一个 Flask 应用

    Flask 是一种很赞的Python web框架.它极小,简单,最棒的是它很容易学. 今天我来带你搭建你的第一个Flask web应用!和官方教程 一样,你将搭建你自己的微博客系统:Flaskr.和官 ...

  8. 微信小程序 项目实战(一)生命周期 配置服务器信息 splash启动页

    步骤一:小程序 生命周期 //app.js App({ onLaunch: function () { //当小程序初始化完成时,会触发onLaunch(全局只触发一次) }, onShow: fun ...

  9. linux 标准i2c接口(一)

    一:I2C设备操作方式: 1.  应用程序操作法:i2c的设备的驱动可以直接利用linux内核提供的i2c-dev.c文件提供的ioctl函数接口在应用层实现对i2c设备的读写,但是在应用层使用ioc ...

  10. Express:模板引擎深入研究

    深入源码 首先,看下express模板默认配置. view:模板引擎模块,对应 require('./view'),结合 res.render(name) 更好了解些.下面会看下 view 模块. v ...