從 Selenium 的官方文檔來看,推薦用戶使用 ios-driver 或 appium 而不是官方發佈的 iPone Driver. 他們的地址分別是:java
http://ios-driver.github.io/ios-driverios
http://appium.io/git
一、Appium 簡介:github
Appium 是一個開源的,跨平臺的測試框架,能夠用來測試移動設備上 Native 或 Hybrid 的應用程序。Appium 同時支持 iOS、Android 和 FirefoxOS 等多種移動平臺。npm
Appium 的工做原理:經過 WebDriver 的 JSON Wire 協議來驅動 iOS 或 Android 系統的 UIAutomator 框架,或基於Gecko 的 Marionette 框架。編程
Appium 的優點:Appium 在不一樣移動平臺上均使用了標準的自動化 API,因此用戶不須要從新編譯或者修改 app。Appium 支持 Selenium WebDriver 能支持的全部綁定編程語言,如 Java,Python,JavaScript,C#,Ruby等xcode
二、Appium 安裝瀏覽器
一、使用 Node.js 安裝 Appium,命令以下。安裝以前應先確認系統中已安裝了Node.jsapp
$ sudo npm install -g appium框架
二、直接從官網下載並解壓,地址以下
https://gitbub.com/appium/appium/releases
三、直接下載Appium.dmg文件並解壓,這種方式是帶 UI 的 app,地址以下
https://bitbucket.org/appium/appium.app/downloads
四、啓動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 文件,則雙擊打開便可
三、Appium 的 iOS 配置
一、確保 Mac OS X 的最低版本爲 10.7
二、Xcode/iOS 兼容 Xcode 4.6.3/iOS6.1.x,或Xcode 5/iOS 7.x。不要使用高版本的 Xcode 配合低版本的 iOS SDK,如Xcode 5/iOS 6.x
三、確保受權 iOS 模擬器的使用
3.一、若是經過 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.二、若是經過在官網下載源碼包的方式來運行Appium,則容許以下命令:
$sudo grunt authorize
3.三、若是直接使用Appium.app,在在UI 上操做便可
四、多個 iOS SDK qieh
Appium 使用 Xcode 的 Instruments 來啓動 iOS 模擬器,而且默認使用當前安裝的 Xcode 的最高版本的 iOS SDK。若是須要在特定的 iOS 上測試,在啓動 Appium 以前,須要切換到特定的測試版本上,使用以下命令進行切換:
$sudo xcode-select- -switch/Applications/Xcode.app/Contents/Developer/
四、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();
}
}