- ここにあるものとその方法を理解する第1章
 - 作業に必要なすべてのインストールと構成に関する第2章
 - 第3章では、Appium GUIについて説明します。
 - モバイルアプリケーションの要素をローカライズする方法に関する第4章
 
この章では、アプリケーションの自動化に進みます。
- ネイティブアプリケーションの自動化
 - ハイブリッドオートメーション
 - Webアプリケーションとネイティブブラウザーを使用する
 - WebアプリケーションとSafariを使用する
 
たくさんのコードが先にあります。 行こう!
始める前に
Appiumを起動する前に、必要なソフトウェアがすべてインストールされていることを確認しましょう。
Androidの要件:
- Java(バージョン7以降)
 - Android SDK API(バージョン17以降)
 - エミュレーター
 - Eclipse [またはIdea]
 - Testng
 - Appiumサーバー
 - Appiumクライアントライブラリ(Java)
 - Selenium ServerおよびWebDriver Javaライブラリ
 - テスト対象のアプリケーションのAPK
 
iOSの要件:
- Mac OS 10.7以降
 - Xcode(バージョン4.6.3以降、5.1を推奨)
 - シミュレーター
 - シミュレーターにはSafari
 - Javaバージョン7
 - Eclipse [またはIdea]
 - Testng
 - Appiumサーバー
 - Appiumクライアントライブラリ(Java)
 - Selenium ServerおよびWebDriver Javaライブラリ
 
Appiumを使用する場合、必要な機能をインストールし、Android / iOSドライバーを開始する必要があります。
Androidおよび実行中のAndroidドライバーに必要な機能
目的の機能を設定するには、Appium GUIを使用する方法と、目的の機能オブジェクトを開始する方法の2つの方法があります。 目的の機能オブジェクトが優先されます。 両方のオプションを考えてみましょう。以下は、ネイティブおよびハイブリッドアプリケーション用のAppium GUIのAndroid設定です。
      設定方法:
- Appium GUIでAndroid設定を開きます。
 - テスト対象のアプリケーションへのパスを指定します。
 - リストからパッケージを選択します。
 -  開始するアクティビティのリストから選択します。 
      
著者からのメモアプリケーションが仮想デバイスに既にインストールされている場合、手順2〜4は不要です。 APKについての情報をエミュレータに転送して、さらに作業を進める必要があります。 方法:- エミュレーターを実行する
 - コマンドプロンプトを開きます[コンピューター上]
 -  書きます 
adb -e install < apk>
 - Enterを押す
 - インストールが成功したことを示すメッセージが表示されます。
 
 - [AVDの起動]をオンにして、リストから作成したエミュレーターを選択します[既にエミュレーターを作成済みであることが前提です]。
 - リストからPlatformVersionを選択します。
 - デバイス名をオンにして、「Android emulator」と記述します。
 - Appiumサーバーを起動します。
 
次に、Webアプリケーション用のAppium GUIのAndroid設定について:
      設定方法:
- Androidの設定を開きます。
 - [AVDの起動]をオンにして、リストから作成したエミュレーターを選択します[既にエミュレーターを作成していることを前提としています]。
 - リストからPlatformVersionを選択します。
 - [ブラウザを使用]をオンにして、リストからブラウザを選択します。
 - デバイス名をオンにして、「Android emulator」と記述します。
 - Appiumサーバーを起動します。
 
次に、DCを形成する2番目の方法について説明します。
ネイティブおよびハイブリッドアプリケーションに必要な機能
最初の章では、必要な機能とは何か、そしてそれらがなぜ必要なのかをすでに説明したので、ここですぐにコードに突入します[最後に!! 1!]。 まず、パッケージをインポートする必要があります。
 import java.io.File; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.remote.MobileCapabilityType;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次に、目的の機能を作成します(ネイティブおよびハイブリッド用):
 DesiredCapabilities caps = new DesiredCapabilities();//  File app=new File("path of the apk");//  File,     apk caps.setCapability(MobileCapabilityType.APP,app);//,       . caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");//  Android caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");// OS caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator");//,     caps.setCapability("avd","Name of the AVD to launch");//,      caps.setCapability(MobileCapabilityType.APP_PACKAGE, "package name of your app (you can get it from apk info app)");// package   caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "Launch activity of your app (you can get it from apk info app)");//activity  
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      Webアプリケーションに必要な機能
AndroidのWebアプリケーションでは、いくつかのオプションは必要ありません。 たとえば、ブラウザを起動するため、APP、APP PACKAGE、APP ACTIVITY。
開始するには、パッケージをインポートする必要があります。
 import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.remote.MobileCapabilityType;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次に、目的の機能(Web用)を作成します。
 DesiredCapabilities caps = new DesiredCapabilities();//  caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");//  Android caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");// OS caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator");//,     caps.setCapability("avd","Name of the AVD to launch");//,      caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Browser"); //  
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      必要な機能に関しては、すべてを行いました。 ここで、Androidドライバーを開始し、それをAppiumサーバーに接続する必要があります。
ここでも、パッケージをインポートする必要があります。
 import io.appium.java_client.android.AndroidDriver; import java.net.URL;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次に、Androidドライバーを初期化します。
 AndroidDriver driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); //caps   
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      この行は、目的の機能で設定された設定を使用して、エミュレーターでアプリケーションを起動します。
さて、これでTestNGを使用してテスト用の空白を作成できます。
 import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.remote.MobileCapabilityType; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestAppIication { AndroidDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ // desired capabilities DesiredCapabilities caps = new DesiredCapabilities(); File app=new File("path of the apk"); caps.setCapability(MobileCapabilityType.APP,app); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator"); caps.setCapability("avd","Name of the AVD to launch"); caps.setCapability(MobileCapabilityType.APP_PACKAGE, "package name of your app (you can get it from apk info app)"); caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "Launch activity of your app (you can get it from apk info app)"); caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Browser");//    - driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ //    } @AfterClass public void tearDown(){ driver.closeApp();//CloseApp()        ,  quit()  close() -   } }
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      iOSおよび実行中のiOSドライバーに必要な機能
Androidと同様に、2つの方法で目的の機能を設定できます。
ネイティブおよびハイブリッドアプリケーションの設定:
      - iOS設定を開く
 - テスト対象のアプリケーションへのパスを指定します
 - Force Deviceをオンにして、リストからシミュレーターを選択します
 - リストからプラットフォームバージョンを選択します(または、8.1などの自分で記述できます)。
 - Appium Serverを起動します
 
Webアプリケーションの設定:
      - iOS設定を開く
 - [モバイルSafariを使用]を選択します
 - Force Deviceをオンにして、リストからシミュレーターを選択します
 - リストからプラットフォームバージョンを選択します(または、8.1などの自分で記述できます)。
 - Appium Serverを起動します
 
ネイティブおよびハイブリッドアプリケーションに必要な機能
DCの概要とその理由については、第1章で説明したので、すぐにコードを見てみましょう。 まず、パッケージをインポートします。
 import java.io.File; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.remote.MobileCapabilityType;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次に、目的の機能を作成します(ネイティブおよびハイブリッド用):
 DesiredCapabilities caps = new DesiredCapabilities();//  File app=new File("path of the app");//  File,      caps.setCapability(MobileCapabilityType.APP,app);//    caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1");// iOS caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");// OS caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5");//     Appium  
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      Webアプリケーションに必要な機能
パッケージのインポート:
 import java.io.File; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.remote.MobileCapabilityType;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      次に、Webアプリケーションに必要な容量をインストールします。
 DesiredCapabilities caps = new DesiredCapabilities();//  caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1");// iOS caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS");// OS caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5");//     Appium   caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari"); //  Safari
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      iOSドライバーを初期化するために残ります。
インポート:
 import io.appium.java_client.ios.IOSDriver; import java.net.URL;
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      初期化:
 IOSDriver driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"),caps);
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      これで、TestNGを使用してテストを作成できます。
 import io.appium.java_client.ios.IOSDriver; import io.appium.java_client.remote.MobileCapabilityType; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; import org.openqa.selenium.remote.DesiredCapabilities; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestAppIication { IOSDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ // desired capabilities DesiredCapabilities caps = new DesiredCapabilities(); File app=new File("path of the .app"); caps.setCapability(MobileCapabilityType.APP,app); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5"); caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");//    - driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ //    } @AfterClass public void tearDown(){ driver.closeApp();//     //driver.quit(); // - } }
      
      
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      ネイティブアプリケーションの自動化
Android
以下は、Android電卓の自動化の例です。 この例では、2つの数値を追加しようとしています。
      -   setup()メソッドで必要な機能を更新して、計算機を起動します。 
      
caps.setCapability("avd","AVD_Nexus_4");// Mention the created AVD name caps.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2"); caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator");
 -  次に、2つの数字を見つける必要があります。 名前で検索します: 
      
WebElement five=driver.findElement(By.name("5")); WebElement four=driver.findElement(By.name("4"));
 -  また、記号「+」と「=」を見つける必要があります。  AccessabilityIDで検索します。 
      
WebElement plus=driver.findElement(By.name("+")); WebElement equalTo=driver.findElementByAccessibilityId("equals"));
 -  次に、クリックします: 
      
five.click(); plus.click(); four.click(); equalTo.click();
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { AndroidDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator"); caps.setCapability("avd","AVD_Nexus_4");// Mention the created AVD name caps.setCapability(MobileCapabilityType.APP_PACKAGE, "com.android.calculator2"); caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.android.calculator2.Calculator"); driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ WebElement five=driver.findElement(By.name("5")); five.click(); WebElement plus=driver.findElement(By.name("+")); plus.click(); WebElement four=driver.findElement(By.name("4")); four.click(); WebElement equalTo=driver.findElementByAccessibilityId("equals")); equalTo.click(); } @AfterClass public void tearDown(){ driver.closeApp(); } }
 
iOS
以下は、TestAppアプリケーションでの作業の例です。 ここからダウンロードできます 。 ダウンロードしたら、解凍します。
      この例では、2つの数値を追加しようとします。
-   TestAppを実行するためにsetup()メソッドを更新します。 
      
File app=new File("/Users/mhans/appium/ios/TestApp.app");//You can change it with your app address caps.setCapability(MobileCapabilityType.APP,app);
 -  次に、数字を入力するための要素を見つける必要があります。 名前で検索します: 
      
WebElement editBox1=driver.findElement(By.name("TextField1")); WebElement editBox2=driver.findElement(By.name("TextField2"));
 -  次に、計算ボタンを見つけます。  AccessibilityIDを使用します。 
      
WebElement computeSumBtn=driver.findElementByAccessibilityId("Compute Sum"));
 -  最初のフィールドに値を入力します。 
      
editBox1.sendKeys("10");
 -   2番目の値を紹介します。 
      
editBox2.sendKeys("20");
 -  次に、[合計の計算]ボタンをクリックします。 
      
computeSumBtn.click();
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { IOSDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ File app=new File("/Users/mhans/appium/ios/TestApp.app");//You can change it with your app address DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.APP,app); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5"); driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ WebElement editBox1=driver.findElement(By.name("TextField1")); editBox1.sendKeys("10"); WebElement editBox2=driver.findElement(By.name("TextField2")); editBox2.sendKeys("20"); WebElement computeSumBtn=driver.findElementByAccessibilityId("Compute Sum")); computeSumBtn.click(); } @AfterClass public void tearDown(){ driver.closeApp(); } }
 
Webアプリケーションを使用する
Android
Google検索ページを例に取ります。 ネイティブAndroidブラウザーを使用して作業します。
      -   setup()メソッドを更新して、ブラウザーを起動します。 
      
caps.setCapability("avd","AVD_Nexus_4"); caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Browser");
 -  次に、 www.google.comにアクセスする必要があります。 
      
driver.get("https://www.google.com");
 -   searchBox要素を見つける必要があります。 名前で検索します: 
      
WebElement searchBox=driver.findElement(By.name("q"));
 -  次に、検索クエリを入力します。 
      
searchBox.sendKeys("Appium for mobile automation");
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { AndroidDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Browser"); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator"); caps.setCapability("avd","AVD_Nexus_4");// Mention the created AVD name driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample() { driver.get("https://www.google.com"); WebElement searchBox=driver.findElement(By.name("q")); searchBox.sendKeys("Appium for mobile automation"); } @AfterClass public void tearDown(){ driver.quit(); } }
 
iOS
Google検索ページを例に取ります。 作業には、ネイティブのSafariブラウザを使用します。
      -   setup()メソッドを更新して、Safariを起動します。 
      
caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari");
 -   www.google.comにアクセスします。 
      
driver.get("https://www.google.com");
 -  次に、検索文字列を(名前で)検索します。 
      
WebElement searchBox=driver.findElement(By.name("q"));
 -  検索バーでリクエストを送信します。 
      
searchBox.sendKeys("Appium for mobile automation");
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { IOSDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari"); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5"); driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ driver.get("https://www.google.com"); WebElement searchBox=driver.findElement(By.name("q")); searchBox.sendKeys("Appium for mobile automation"); } @AfterClass public void tearDown(){ driver.quit(); } }
 
ハイブリッドオートメーション
Android
学習には、testAppを使用します。 こちらからダウンロードできます 。 ハイブリッドアプリケーションを使用する前に、 指示に従う必要があります。
      -   setup()メソッドを更新して、アプリケーションを起動します。 
      
File app=new File("C:\\Appium_test\\testApp.apk"); caps.setCapability(MobileCapabilityType.APP,app); caps.setCapability("avd","AVD_Nexus_4"); caps.setCapability(MobileCapabilityType.APP_PACKAGE, " com.example.testapp"); caps.setCapability(MobileCapabilityType.APP_ACTIVITY, " MainActivity");
 -   URL(https://www.google.com)を入力するフィールドを見つける必要があります。IDで検索します。 
      
WebElement editBox=driver.findElement(By.id("com.example.testapp:id/urlField")); editBox.sendKeys("https://www.google.com");
 -   [Go]ボタンを見つけます。 
      
WebElement goButton=driver.findElement(By.name("Go"));
 -  ボタンをクリックしてください: 
      
goButton.click();
 -  次に、コンテキストを切り替える必要があります。 
      
Set<String> contexts = driver.getContextHandles(); for (String context : contexts) { System.out.println(context); // NATIVE_APP WEBVIEW_com.example.testapp }
 -   web_viewに切り替えます。 
      
driver.context("WEBVIEW_com.example.testapp");
または:
driver.context((String) contextNames.toArray()[1]);
 -  これで、Google Webページを操作できます。  [画像]タブをクリックして、linkTextで要素を見つけることができます。 
      
WebElement images=driver.findElement(By.linkText("Images")); images.click();
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { AndroidDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities caps = new DesiredCapabilities(); File app= new File("/Users/mhans/appium/ios/webViewApp. app"); caps.setCapability(MobileCapabilityType.APP,app"); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "Android emulator"); caps.setCapability("avd","AVD_Nexus_4");// Mention the created AVD name caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Appium");//Use Selendroid in case of <4.4 android version caps.setCapability(MobileCapabilityType.APP_PACKAGE, "com.example.testapp"); caps.setCapability(MobileCapabilityType.APP_ACTIVITY, "com.example.testapp.MainActivity"); driver = new AndroidDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ WebElement editBox=driver.findElement(By.id("com.example.testapp:id/urlField")); editBox.sendKeys("https://www.google.com"); WebElement goButton=driver.findElement(By.name("Go")); goButton.click(); Set<String> contexts = driver.getContextHandles(); for (String context : contexts) { System.out.println(context); } driver.context((String) contexts.toArray()[1]); WebElement images=driver.findElement(By.linkText("Images")); images.click(); } @AfterClass public void tearDown(){ driver.closeApp(); } }
 
iOS
ここでは、たとえばWebViewAppを取り上げます。 こちらからダウンロードできます。 ダウンロード後、アプリケーションを解凍します。
      -   setup()メソッドを更新して、アプリケーションを開始します。 
      
File app=new File("/Users/mhans/appium/ios/WebViewApp.app"); caps.setCapability(MobileCapabilityType.APP,app);
 -   URL(https://www.google.com)を渡すには、検索バーを見つける必要があります。  classNameで見つけましょう: 
      
WebElement editBox=driver.findElement(By.className("UIATextField")); editBox.sendKeys("www.google.com");
 -  次に、名前で[Go]ボタンを見つけます。 
      
WebElement goButton=driver.findElement(By.name("Go"));
 -  クリック: 
      
goButton.click();
 -  次に、コンテキストのリストを取得する必要があります。 
      
Set<String> contexts = driver.getContextHandles(); for (String context : contexts) { System.out.println(context); }
 -  そしてweb_viewで動作するように切り替えます: 
      
driver.context("WEBVIEW_com.example.testapp");
または
driver.context((String) contextNames.toArray()[1]);
 -  これで、Google Webページを操作できます。  [画像]タブをクリックして、linkTextで要素を見つけることができます。 
      
WebElement images=driver.findElement(By.linkText("Images")); images.click();
 -   TestNGを使用してテストを実行します。 
      
public class TestAppIication { IOSDriver driver; @BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.1"); caps.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); caps.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 5"); driver = new IOSDriver (new URL("http://127.0.0.1:4723/wd/hub"), caps); driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testExample(){ WebElement editBox=driver.findElement(By.className("UIATextField")); editBox.sendKeys("https://www.google.com"); WebElement goButton=driver.findElement(By.name("Go")); goButton.click(); Set<String> contexts = driver.getContextHandles(); for (String context : contexts) { System.out.println(context); } driver.context((String) contexts.toArray()[1]); WebElement images=driver.findElement(By.linkText("Images")); images.click(); } @AfterClass public void tearDown(){ driver.closeApp(); } }
 
以上です。 次の章では、実際のデバイスを操作する機能について見ていきます。