http://ios-driver.github.io/ios-driver/ # 官網(wǎng)關(guān)于ios-driver詳細(xì)使用說明
-
工具
- VMware 12 Pro + vm tools.iso + Unlocker + OS X10.11 + Apple ID
- Xcode7.3 + JDK1.8 + Maven3.5.3 + Gauge0.9.7 +ios-driver 0.6.5 + IDEA2017.3.4
-
System requirements for OSX
- ios-driver is built upon 2 different frameworks from Apple.
- For native apps, it uses the UIAutomation framework from Apple (more here). You need xcode with an IOS SDK > 5.0.
- To check if you have the correct setup:
- $ xcodebuild -showsdks
- To check if you have the correct setup:
- For native apps, it uses the UIAutomation framework from Apple (more here). You need xcode with an IOS SDK > 5.0.
- The server is written in Java and requires Java 7.To check that you have the correct version :
- $ java -version
- Mac 中 JDK默認(rèn)安裝路徑
- JETdeMac:apache-maven-3.5.3 JET$ /usr/libexec/java_home -V
- Matching Java Virtual Machines (1):
- 1.8.0_162, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
- /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
- 設(shè)置環(huán)境變量 JAVA_HOME
- ios-driver is built upon 2 different frameworks from Apple.
1蜒什、先得要有Mac系統(tǒng)( Mac筆記本奔害,或者VMware安裝OS X 虛擬機(jī))
2码邻、創(chuàng)建ios simulator
-
OS X EI Capitan 10.11.1快速升級(jí)方法介紹
-
Mac上安裝Xcode
- 下載安裝包形式安裝
-
https://developer.apple.com/download/more/下載apple開發(fā)工具绪囱,包括xcode & Command Line Tools (macOS El Capitan version 10.11) for Xcode8.2等(需要輸入apple id)
- Mac10.11, 對(duì)應(yīng)安裝Xcode 8.2 (5.2G) 版本
- Mac系統(tǒng)對(duì)應(yīng)XCode版本霎冯,都可以在這個(gè)鏈接里查看得到
- 建議使用safari瀏覽器下載芯杀,速度很快(我的達(dá)到了2M/s)
- Mac下載的文件在哪?
- 從 App Store 中下載的軟件:
- 如果你是從 App Store 應(yīng)用商店中下載的軟件弛房,可以在 Launchpad 面板中看到值骇。我們可以通過按鍵盤上的 F4 鍵莹菱,或在觸控板上用四個(gè)手指合攏打開 Launchpad 面板。
- 另外我們還可以在 Finder 中的“應(yīng)用程序”中找到它們吱瘩,這里會(huì)顯示當(dāng)前電腦上安裝的所有應(yīng)用軟件
- 還可以在終端命令窗口中輸入 ls /Applications 來查看所有的應(yīng)用軟件道伟。
- 查看在 Safari 瀏覽器下載的:
- 如果你是通過 Safari 瀏覽器下載的內(nèi)容,可以點(diǎn)擊 Safari 窗口右上角的“下載”圖標(biāo).隨后可以看到最近的下載列表,如果想要打開下載文件的位置蜜徽,請(qǐng)點(diǎn)擊文件右側(cè)的“查找”圖標(biāo).接著就會(huì)在 Finder 窗口中顯示該文件的所在位置
- 直接在 Dock 欄中的下載欄目中查看:
- 在屏幕下方 Dock 欄的右側(cè)有一個(gè)“下載”欄目祝懂,可以看到最近下載的文件
- 從 App Store 中下載的軟件:
- Mac下載的文件在哪?
- Xcode: This is the complete Xcode developer toolset for Apple Watch,Apple TV,iPhone,iPad,and Mac. It includes the Xcode IDE,ios Simulator,and all required toolsand frameworks for building iOS,watchOS,tvOS and macOS apps.
- 安裝xcode_7.3.dmg
- 雙擊xcode_7.3.dmg,等完成后,按照提示,拖動(dòng)到Applications,耐心等待(正在將"xcode.app"拷貝到"應(yīng)用程序" (10.48G)) ---- 此過程,時(shí)間很漫長...
- 查看xcode的版本
- 終端中輸入 xcodebuild -version
- JETdeMac:~ JET$ xcodebuild -version
- Xcode 7.3
- Build version 7D175
- Win7 64位上安裝的OS X虛擬機(jī), Win7 32 bit mstsc連接 Win7 64bit, OS X Terminal上復(fù)制,直接復(fù)制到win7 32上是無法復(fù)制的;
- 先復(fù)制到win7 64上,再復(fù)制到win7 32bit 上,是可以的.
- Win7 64位上安裝的OS X虛擬機(jī), Win7 32 bit mstsc連接 Win7 64bit, OS X Terminal上復(fù)制,直接復(fù)制到win7 32上是無法復(fù)制的;
- 有時(shí)候直接輸入這個(gè)命令xcodebuild -version,報(bào)錯(cuò):error: tool 'xcodebuild' requires Xcode // select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
- 解決辦法 (這是因?yàn)檎也坏絰code路徑)
- 終端輸入: xcode-select --switch /Applications/Xcode.app/Contents/Developer/
- 解決辦法 (這是因?yàn)檎也坏絰code路徑)
- 點(diǎn)擊“Xcode”的menu菜單拘鞋。點(diǎn)擊里面的“About xcode”選項(xiàng)砚蓬,此時(shí)會(huì)打開對(duì)話框。
- 終端中輸入 xcodebuild -version
-
https://developer.apple.com/download/more/下載apple開發(fā)工具绪囱,包括xcode & Command Line Tools (macOS El Capitan version 10.11) for Xcode8.2等(需要輸入apple id)
- 安裝Xcode8.2
- 下載下來以后盆色,發(fā)現(xiàn)文件名是 Xcode_8.xip灰蛙,以往的擴(kuò)展名都是 .zip,今年的有一點(diǎn)不一樣隔躲。但是歸檔工具還是能識(shí)別這個(gè)文件摩梧,雙擊以后,本來挺激動(dòng)宣旱。但是仅父,發(fā)現(xiàn)過了一會(huì)報(bào)了一個(gè)錯(cuò)誤 “未能完成該操作。cpio read error:Undefined error:0”浑吟。
- 拿這個(gè)錯(cuò)誤去簡書內(nèi)搜了一下笙纤,沒有有價(jià)值的解決方案,后來又去了谷歌组力,在 stack overflow 上找到了答案省容,你只要把Mac系統(tǒng)升級(jí)到最新的 10.11.6,再重啟系統(tǒng)忿项,雙擊打開就沒有問題了蓉冈。
- 命令行方式安裝指定版本的Xcode & simulator
- 干凈地卸載Xcode
- 根目錄下的必須要用管理員權(quán)限:
- sudo rm -rf /Applications/Xcode.app
- sudo rm -rf /Library/Preferences/com.apple.dt.Xcode.plist
- 然后刪除自己目錄下的:
- rm -rf ~/Library/Preferences/com.apple.dt.Xcode.plist
- rm -rf ~/Library/Caches/com.apple.dt.Xcode
- rm -rf ~/Library/Application\ Support/Xcode
- 以及和開發(fā)者相關(guān)的:
- rm -rf ~/Library/Developer/Xcode
- rm -rf ~/Library/Developer/CoreSimulator
- rm -rf ~/Library/Developer/XCPGDevices
- 根目錄下的必須要用管理員權(quán)限:
- 安裝/卸載command line tools for xcode
- 安裝:
- brew doctor
- 卸載:
- cd /Library/Developer
- JETdeMac:Developer JET$ sudo rm -rf CommandLineTools/
- 安裝:
- 下載安裝包形式安裝
-
mac安裝神器brew
- 命令行輸入: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 回車(這里有提示目錄不存在,要?jiǎng)?chuàng)建需要按return鍵轩触,如果用的windows鍵盤,就是回車鍵)
- 此過程,自動(dòng)安裝: Installing Command Line Tools (macOS El Capitan version 10.11) for Xcode
- 它的用法
- brew update 更新brew家夺;
- brew install {應(yīng)用名脱柱,如git} 安裝軟件
- brew cask install {應(yīng)用名,如git} 也是下載安裝拉馋,與上面的區(qū)別榨为,請(qǐng)查看https://www.zhihu.com/question/22624898
- 更多用法請(qǐng) brew help
- 命令行輸入: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 回車(這里有提示目錄不存在,要?jiǎng)?chuàng)建需要按return鍵轩触,如果用的windows鍵盤,就是回車鍵)
-
Install Gauge for Mac OS X
- 1. use brew
- brew update
- brew install gauge
- gauge -v 驗(yàn)證是否安裝OK
- JETdeMac:Downloads JET$ gauge -v
- Gauge version: 0.9.7
- Plugins
- No plugins found
- Plugins can be installed with
gauge install {plugin-name}
- gauge init java
- JETdeMac:MyGaugeTest JET$ gauge run specs/
- Installing required plugins.
- .....................
- ........................
-
Specification Heading
-
Vowel counts in single word ? ?
-
Vowel counts in multiple word ? ?
- Successfully generated html-report to => /Users/JET/Downloads/MyGaugeTest/reports/html-report/index.html
- Specifications: 1 executed 1 passed 0 failed 0 skipped
- Scenarios: 2 executed 2 passed 0 failed 0 skipped
- gauge -v 驗(yàn)證是否安裝OK
- 2. use zip
- $ unzip -o gauge-0.9.7-darwin.x86_64.zip -d /usr/local/bin
- 1. use brew
-
Install JDK for OS X
- oracle官網(wǎng)下載mac版本的JDK: jdk-8u162-macosx-x64.dmg
- 雙擊安裝,出現(xiàn)pkg文件,直接雙擊安裝即可
- java -version 查看是否安裝成功
- 默認(rèn)已經(jīng)設(shè)置了環(huán)境變量
- JETdeMac:~ JET$ java -version
- java version "1.8.0_162"
- Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
- Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
- 默認(rèn)已經(jīng)設(shè)置了環(huán)境變量
-
Install Maven for OS X (IDEA201703.04版本自帶Maven3.3.9,在Mac中配置好很久自己安裝的3.5.2/3煌茴,都無法加載pom.xml中的依賴随闺。還是使用IDEA自帶的Maven!B>乩帧)
- htps://blog.csdn.net/u011886447/article/details/70200922
- 從官網(wǎng)(http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.2/binaries/)下載 Maven (apache-maven-3.5.2-bin.tar.gz)并解壓。
- tar -zxvf apache-maven-3.5.2-bin.tar.gz -C /data/maven/
- mkdir -p /data/maven/LocalHouse
- 設(shè)置環(huán)境變量
- JETdeMac:Home JET$ sudo vi ~/.bash_profile # 設(shè)置maven & java 環(huán)境變量
- export MAVEN_HOME="/data/maven/apache-maven-3.5.2"
- export PATH="PATH"
- export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home"
- export PATH="PATH"
- JETdeMac:Home JET$ source ~/.bash_profile # 使環(huán)境變量生效
- JETdeMac:Home JET$ mvn -v # 檢查環(huán)境變量是否生效
- Apache Maven 3.5.2 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00)
- Maven home: /data/maven/apache-maven-3.5.2
- Java version: 1.8.0_162, vendor: Oracle Corporation
- Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre
- Default locale: zh_CN, platform encoding: UTF-8
- OS name: "mac os x", version: "10.11.1", arch: "x86_64", family: "mac"
- JETdeMac:Home JET$ sudo vi ~/.bash_profile # 設(shè)置maven & java 環(huán)境變量
-
Mac下安裝/注冊(cè)/配置IDEA
- 安裝IDEA
- 先到IDEA官網(wǎng)下載Mac版本的IDEA(ideaIU-2017.3.4.dmg)
- 直接雙擊ideaIU-2017.3.4.dmg,拖動(dòng)到Applications散罕,安裝完成后分歇,在Launch里找到IDEA,運(yùn)行
- 注冊(cè)IDEA
- 先Finder里快捷鍵組合 Shift+Command+G 三個(gè)組合按鍵欧漱,并輸入 Hosts 文件的所在路徑:/etc/hosts,將“0.0.0.0 account.jetbrains.com”添加到hosts文件中
- 注意:會(huì)提示"無權(quán)限更改“职抡,所以只能通過下面的命令行sudo更改
- sudo nano /private/etc/hosts
- 將“0.0.0.0 account.jetbrains.com”添加到hosts文件中
- mac nano 保存退出
- Ctrl + x,保存误甚,會(huì)提示按Y缚甩,不保存就 N,取消就 C
- Enter
- Ctrl + x,保存误甚,會(huì)提示按Y缚甩,不保存就 N,取消就 C
- 登錄http://idea.lanyus.com/ 窑邦,復(fù)制Activation code擅威,粘貼到IDEA中
- Mac中,Command 相當(dāng)于 Windows中的Ctrl
- Mac中奕翔,復(fù)制:command+c裕寨, 粘貼: command+v
- IDEA中,復(fù)制一行: command+d
- Mac中,Command 相當(dāng)于 Windows中的Ctrl
- 先Finder里快捷鍵組合 Shift+Command+G 三個(gè)組合按鍵欧漱,并輸入 Hosts 文件的所在路徑:/etc/hosts,將“0.0.0.0 account.jetbrains.com”添加到hosts文件中
- 配置IDEA
- 配置Maven(Mac中派继,使用IDEA自帶的Maven才正常加載pom.xml依賴1鐾唷!)
- 按照Windows中配置方法(見Java/Maven配置)驾窟,老是提示報(bào)錯(cuò):
- No plugin found for prefix 'archetype' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories local (/data/maven/LocalHouse)http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixExceptionFailedto initialize project. exit status 1
- OS X中更改settings.xml中的存儲(chǔ)路徑:
- 1. sudo mv ~/.m2 ~/.m2_bak
- maven默認(rèn)存儲(chǔ)路徑: /Users/JET/.m2/repository
- 2. sudo mv /data/maven/apache-maven-3.5.2/conf/settings.xml /data/maven/
- 3. sudo vi /data/maven/settings.xml
- /data/maven/apache-maven-3.5.3/
- /data/maven/settings.xml
- /data/maven/LocalHouse
- settings.xml內(nèi)容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
- <pluginGroups />
- <proxies />
- <servers />
- <localRepository>/data/maven/LocalHouse</localRepository>
- <mirrors>
- <mirror>
- <id>alimaven</id>
- <mirrorOf>central</mirrorOf>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
- </mirror>
- <mirror>
- <id>alimaven</id>
- <name>aliyun maven</name>
- <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- <mirror>
- <id>central</id>
- <name>Maven Repository Switchboard</name>
- <url>http://repo1.maven.org/maven2/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- <mirror>
- <id>repo2</id>
- <mirrorOf>central</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://repo2.maven.org/maven2/</url>
- </mirror>
- <mirror>
- <id>ibiblio</id>
- <mirrorOf>central</mirrorOf>
- <name>Human Readable Name for this Mirror.</name>
- <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
- </mirror>
- <mirror>
- <id>jboss-public-repository-group</id>
- <mirrorOf>central</mirrorOf>
- <name>JBoss Public Repository Group</name>
- <url>http://repository.jboss.org/nexus/content/groups/public</url>
- </mirror>
- <mirror>
- <id>google-maven-central</id>
- <name>Google Maven Central</name>
- <url>https://maven-central.storage.googleapis.com
- </url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- <mirror>
- <id>maven.net.cn</id>
- <name>oneof the central mirrors in china</name>
- <url>http://maven.net.cn/content/groups/public/</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- </mirrors>
- </settings>
- settings.xml內(nèi)容如下:
- 注意: cmd 運(yùn)行 gauge init java_maven_selenium 時(shí)庆猫,不能打開IDEA,否則一直卡在那里
- 1. sudo mv ~/.m2 ~/.m2_bak
- Configure-Preferences-Maven: # 試過很多次绅络,還是無效
- rm -rf ~/.m2
- rm -rf /data/maven/apache-maven-3.5.2/conf/settings.xml
- Maven home:
- /data/maven/apache-maven-3.5.2
- User Setting Files:
- /data/maven/settings.xml
- LocalRepository:
- /data/maven/LocalHouse
- 按照Windows中配置方法(見Java/Maven配置)驾窟,老是提示報(bào)錯(cuò):
- 配置Gauge插件
- Configure-Preferences-Plugins:
- 搜索“gauge"月培,下載(0.3.11), install
- 但是不知道是網(wǎng)絡(luò)不好,還是啥原因恩急,一直下載不成功
- 后來直接到IDEA Plugin網(wǎng)站下載gauge(http://plugins.jetbrains.com/plugin/7535-gauge) Gauge-Java-Intellij-0.3.11.zip
- IDEA:Configure-Preferences-Plugins:
- Install plugins from disk, 選擇Gauge-Java-Intellij-0.3.11.zip杉畜,點(diǎn)擊restart IDEA
- IDEA:Configure-Preferences-Plugins:
- 搜索“gauge"月培,下載(0.3.11), install
- Configure-Preferences-Plugins:
- JDK配置
- idea Structure Project:
- 默認(rèn)設(shè)置為了我自己安裝的1.8版本的(可以再檢查下)
- idea Structure Project:
- 配置Maven(Mac中派继,使用IDEA自帶的Maven才正常加載pom.xml依賴1鐾唷!)
- 安裝IDEA
-
官網(wǎng)推薦ios-driver
- For testing any iOS native, hybrid, or mobile web application using WebDriver - we recommend: ios-driver.
-
ios-driver官網(wǎng)推薦使用simulator
- Using simulators is the default way to use ios-driver.It offers more flexibility, and it is faster than tests on a real device. However, if your specific needs require tests on real device, in the next release, ios-driver will also support devices without having to make any modifications! ( http://ios-driver.github.io/ios-driver/ )
- Note: Release 0.6.5 does not support xCode 5. If you are using xCode 5, please use the latest snapshot 0.6.6-SNAPSHOT.
-
Mac系統(tǒng)如何啟動(dòng)iOS模擬器 快速啟動(dòng)iOS模擬器教程
- 創(chuàng)建模擬器包:
- 在終端上運(yùn)行下面的命令來查找你的機(jī)器上可用的SDK的版本:
- xcodebuild -showsdks
- 繼續(xù)在終端運(yùn)行如下命令,用你的模擬器SDK替換“-sdk”后面的字段
- xcodebuild -arch i386 -sdk iphonesimulator9.3
- 注意:如果你的項(xiàng)目是多“Target”的項(xiàng)目衷恭,那么你還需要指定一個(gè)Target,從而生成那個(gè)Target的模擬器包此叠,命令如下:
- xcodebuild -arch i386 -sdk [iphonesimulator] -scheme [NameOfScheme]
- 運(yùn)行成功后,在終端將輸出一系列信息随珠,并以** BUILD SUCCEEDED **結(jié)尾灭袁。
- 生成的模擬器包存儲(chǔ)在這個(gè)路徑:
- {Derive data directory}/build/Release-iphonesimulator/{projectname}.app
- 這一路徑的具體信息在最后終端的輸出信息中也可以找到。
- xcodebuild -arch i386 -sdk [iphonesimulator] -scheme [NameOfScheme]
- 注意:如果你的項(xiàng)目是多“Target”的項(xiàng)目衷恭,那么你還需要指定一個(gè)Target,從而生成那個(gè)Target的模擬器包此叠,命令如下:
- xcodebuild -arch i386 -sdk iphonesimulator9.3
- 通過命令行啟動(dòng)iOS模擬器:
- brew install ios-sim
- ios-sim launch <path to .app>
- 在終端上運(yùn)行下面的命令來查找你的機(jī)器上可用的SDK的版本:
- 用ios5.0模擬器(iphonesimulator5.0)建立工程
- $ xcodebuild -sdk iphonesimulator5.0
- 默認(rèn)是Release工程窗看,要設(shè)置成Debug模式如下:
- $ xcodebuild -sdk iphonesimulator5.0 -configuration Debug
- clean創(chuàng)建的工程
- $ xcodebuild clean -sdk iphonesimulator5.0 -configuration Debug
- 默認(rèn)是Release工程窗看,要設(shè)置成Debug模式如下:
- $ xcodebuild -sdk iphonesimulator5.0
- 創(chuàng)建模擬器包:
-
https://www.cnblogs.com/feifeidxl/p/4581369.html[Selenium] IOS 之 ios-driver
-
xcodebuild -showsdks
xcodebuild -arch i386 -sdk iphonesimulator9.3
-
在第一次運(yùn)行 ios-driver 之前茸歧,應(yīng)確保一下目錄和文件的權(quán)限更新:
-
先ios-driver網(wǎng)上下載ios-server-0.6.5-jar-with-dependencies.jar
-
瀏覽器查看wd/hub/status,默認(rèn)端口號(hào)為5555,可在瀏覽器中訪問如下地址显沈,如果看到類似JSON 對(duì)象的信息软瞎,則說明前述操作成功
-
-
例子:
- 例子1:自動(dòng)化操作iOS瀏覽器,打開百度網(wǎng)頁等操作
- IDEA中添加 ios-server-0.6.5-jar-with-dependencies.jar 文件,因?yàn)樾枰獛斓闹С謔rg.uiautomation.ios.IOSCapabilities
- maven:
- <dependency>
- <groupId>org.uiautomation</groupId>
- <artifactId>ios-server</artifactId>
- <version>0.6.5</version>
- </dependency>
- 代碼實(shí)例:
- 示例代碼:
- package com.learningselenium.ios;
- import junit.framework.TestCase;
- import java.net.URL;
- import org.openqa.selenium.remote.RemoteWebDriver;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.uiautomation.ios.IOSCapabilities;
- public class testiOSBaidu extends TestCase{
- public void testBaidu() throws Exception{
- //設(shè)置DesiredCapabilities铜涉,其中IOSCapabilities設(shè)置為iphone智玻,如果程序運(yùn)行在iPad模擬器上,可設(shè)置為ipad芙代。
- //參數(shù)Safari 表示待測(cè)試程序的bundle name吊奢,因?yàn)檫@里是測(cè)試 Web 頁面,默認(rèn)是用 Safari 打開
- DesiredCapabilities safari = IOSCapabilities.iphone("Safari");
- RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:5555/wd/hub"), safari );
- driver.get("http://www.baidu.com");
- driver.close();
- }
- }
- 2.ios-driver 的 Native app 實(shí)例
- 接下來以蘋果官網(wǎng)的示例程序 InternationalMountains 為例纹烹,對(duì)原生 app 的測(cè)試過程進(jìn)行講解页滚,示例代碼下載地址:
- https://developer.apple.com/legacy/library/samplecode/internationalMountains/introduction/intro.html
- 請(qǐng)確保app 程序和 UIAutomation已關(guān)聯(lián),方法如下:
- 在 Xcode 的菜單中選擇 Product->Profile铺呵,并選擇 Automation裹驰。該設(shè)定會(huì)構(gòu)建 app 并啟動(dòng) Instruments
- 將 Instruments 關(guān)閉,并在 Xcode 中選擇 Window->Organizer->Projects片挂,可看到 InternationalMountains.app 文件所在位置為:
- ~/Library/Developer/Xcode/DerivedData/InternationalMountainseordguimrxknwoaynobkvpirkacs/Build/Products/Debugiphonesimulator/InternationalMountains.app
- 接著進(jìn)入剛下載的 ios-server-0.6.5-jar-with-dependencies.jar 的路徑幻林,執(zhí)行如下命令:
- $ java -jar ios-server-0.6.5-jar-with-dependencies.jar -aut
- ~/Library/Developer/Xcode/DerivedData/InternationalMountainseordguimrxknwoaynobkvpirkacs/Build/Products/Debugiphonesimulator/InternationalMountains.app -port 4444
- 接下來確認(rèn) ios-driver 啟動(dòng)成功并可訪問該 app,可通過瀏覽器訪問如下地址音念,如果看到類似JSON 對(duì)象的信息沪饺,說明前述操作成功:
- http://localhost:4444/wd/htb/status
- 如果是在模擬器中運(yùn)行app,則需要在啟動(dòng) ios-driver 時(shí)使用 -simulators 參數(shù)闷愤,執(zhí)行命令及打印信息:
- $ java -jar ios-server-0.6.5-jar-with-dependencies.jar -aut
- ~/Library/Developer/Xcode/DerivedData/InternationalMountainseordguimrxknwoaynobkvpirkacs/Build/Products/Debugiphonesimulator/InternationalMountains.app -port 4444 -simulators
- ... test can access the server at http://0.0.0.0:4444/wd/hub ...
- 應(yīng)確保已經(jīng)通過了 Xcode 啟動(dòng)了模擬器整葡,否則需要通過瀏覽器查看 ios-driver 的啟動(dòng)狀態(tài)是否正常
- 針對(duì) InternationalMountains 的測(cè)試用例代碼如下:
- package com.learningselenium.ios;
- import java.net.URL;
- import jave.util.List;
- import java.io.File;
- import junit.framework.TestCase;
- import org.openqa.selenium.By;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.TakesScreenshot;
- import org.openqa.selenium.OutputType;
- import org.openqa.selenium.remote.RemoteWebDriver;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.openqa.selenium.remote.Augmenter;
- import org.uiautomation.ios.IOSCapabilities;
- public class testiOSInternationalMountains extends TestCase{
- public void testInternationalMountains() throws Exception{
- DesiredCapabilities nativeAppCap= IOSCapabilities.iphone("InternationalMountains", "1.1");
- RemoteWebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), nativeAppCap);
- List<WebElement> cells = driver.findElement(By.className("UIATableCell"));
- assertEquals(9, cells.size());
- WebElement first = cells.get(0); //操作列表中第一個(gè)元素
- first.click();
- //截屏操作和操作頁面元素
- TaksScreenshot screen = (TaksScreenshot ) new Augmenter().augment(driver);
- File ss = new File("screenshot.png");
- screen.getScreenshotAs(OutputType.FILE).renameTo(ss);
- System.out.println("screenshot take:" + ss.getAbsolutePath());
- By selector = By.xpath("http://UIAStaticText[contains(@name, ‘climbed’)]");
- WebElement text = driver.findElement(selector);
- System.out.println(text.getAttribute("name"));
- driver.quit();
- }
- }
- 如果需要在真實(shí)設(shè)備上運(yùn)行app,則需要在啟動(dòng) ios-driver 時(shí)使用 -beta 參數(shù)讥脐,執(zhí)行命令:
- $ java -jar ios-server-0.6.5-jar-with-dependencies.jar -beta -port 4444
- 3. ios-driver 的源碼編譯
-
https://github.com/ios-driver/ios-driver 源碼(git/clone ios-driver-dev.zip)
- 在解壓后的源碼根目錄執(zhí)行如下命令:
- sudo mvn clean package
- 或
- sudo mvn clean install
- 如果編譯成成遭居,會(huì)看到如下日志:
- ...
- [INFO]BUILD SUCCESS
- ...
- build without the tests : mvn package -DskipTests
-
https://github.com/ios-driver/ios-driver 源碼(git/clone ios-driver-dev.zip)
- 4. Web app 或混合式 app
- 針對(duì)這種方式的 app,需要用到遠(yuǎn)程 Webkit 的調(diào)試協(xié)議旬渠,并且 iOS 的版本要求為6+俱萍,Safari 的版本要求為6+。如果無法滿足以上條件告丢,也可繼續(xù)測(cè)試原生 app鼠次,但無法在 Safari 上運(yùn)行 Web 頁面,也不能使用 DOM 選擇器來與 UIWebviews 交互芋齿。
- 例子1:自動(dòng)化操作iOS瀏覽器,打開百度網(wǎng)頁等操作
Mac上搭建ios自動(dòng)化測(cè)試環(huán)境
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門乙漓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人释移,你說我怎么就攤上這事叭披。” “怎么了玩讳?”我有些...
- 文/不壞的土叔 我叫張陵涩蜘,是天一觀的道長。 經(jīng)常有香客問我熏纯,道長同诫,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任樟澜,我火速辦了婚禮误窖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秩贰。我一直安慰自己霹俺,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布萍膛。 她就那樣靜靜地躺著吭服,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝗罗。 梳的紋絲不亂的頭發(fā)上艇棕,一...
- 文/蒼蘭香墨 我猛地睜開眼傻昙,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼闺骚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妆档,我...
- 序言:老撾萬榮一對(duì)情侶失蹤僻爽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后贾惦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胸梆,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡敦捧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了碰镜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兢卵。...
- 正文 年R本政府宣布王滤,位于F島的核電站,受9級(jí)特大地震影響滓鸠,放射性物質(zhì)發(fā)生泄漏雁乡。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一糜俗、第九天 我趴在偏房一處隱蔽的房頂上張望踱稍。 院中可真熱鬧,春花似錦悠抹、人聲如沸珠月。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽啤挎。三九已至,卻和暖如春卵凑,著一層夾襖步出監(jiān)牢的瞬間庆聘,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓黑忱,卻偏偏與公主長得像宴抚,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子甫煞,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 用到的組件 1菇曲、通過CocoaPods安裝 2、第三方類庫安裝 3抚吠、第三方服務(wù) 友盟社會(huì)化分享組件 友盟用戶反饋 ...
- Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理羊娃,服務(wù)發(fā)現(xiàn),斷路器埃跷,智...
- 這期的歌手突圍賽头朱,除了上期票選的3個(gè)直接入圍決賽的首發(fā)歌手張韶涵运悲、汪峰和Jessie J,其余的10位歌手進(jìn)行10...
- 朝九晚五的下班项钮、買菜班眯、做飯……這是上班族的不變節(jié)奏。 民以食為天烁巫,吃是老百姓生活中第一樁大事署隘。最近幾年去菜場(chǎng)轉(zhuǎn)轉(zhuǎn),...