Object Spy Mode

概要

AndroidおよびiOSプラットフォーム上のアプリの構造を検査するためのツールです。
検査した要素に基づいてスクリプトを生成することができます。

前提条件

  • AndroidおよびiOSデバイスを接続し、アプリケーションをインストールしていること。
  • デバイスへの接続についてはデバイスに接続するをご確認ください。
  • アプリのインストールについてはアプリのインストールをご確認ください。

目次

  1. 操作方法
  2. スクリプト生成
  3. オブジェクト検索

操作方法

  1. デバイスに接続し、アプリをインストールします。「Object Spy Mode」をクリックします。
  2. Step1の「start▶」をクリックします。
  3. 任意の要素をクリックまたはホバーします。
  4. Step2(画面右側)にプロパティが表示されます。
  5. オブジェクトのコピーアイコンをクリックすると、そのオブジェクトがコピーされ、画面右下に成功通知が表示されます。
  6. Step2のXpathもしくはXpathAttributeのチェックボックスをONにし、Step3でスクリプトを生成するアクションを選択します。
  7. Step4へスクリプトが生成されました。 生成できるスクリプトについてはスクリプト生成をご確認ください。
  8. 「COPY」をクリックすると、生成したスクリプトがコピーできます。
    コピーに成功すると、画面右下に成功通知が表示されます。
  9. 「CLEAR」をクリックします。
  10. 生成されたスクリプトが削除されました。
  11. 「Find」ではオブジェクトを検索することができます。 検索方法はオブジェクト検索をご確認ください。
  12. 「Exit Spy Mode」をクリックし、Object Spy Modeを終了することができます。

スクリプト生成

  1. Step2のXpathもしくはXpathAttributeのチェックボックスをONにし、Step3でスクリプトを生成するアクションを選択します。
    生成できるスクリプトは以下です。
    • SendKeys:要素を見つけて、そのキーに「Hello Google」というテキストを入力する操作を実行する
    • TAP:要素をタップする操作を実行する
    • Clear:要素の内容をクリア(消去)する操作を実行する
    • Double Tap:要素に対してダブルタップ操作を実行する
    • Wait:要素に対して1秒間待機する操作を実行する
    • waitForObject:要素が表示されるまで最大30秒待機する操作を実行する
    • Long Press:要素を2秒間長押しする操作を実行する
  • SendKeys
    「SendKeys」をクリックします。
    iOSアプリのキーボード上の「SIGN IN」キーを見つけて、そのキーに「Hello Google」というテキストを入力する操作を実行する。
    【生成されたスクリプト】
    driver.findElement(By.xpath("//XCUIElementTypeKey[@name='SIGN IN']")).sendKeys("Hello Google");
  • TAP
    「TAP」をクリックします。
    iOSアプリの「SIGN IN」ボタンをクリックする操作を実行する。
    【生成されたスクリプト】
    driver.findElement(By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']")).click();
  • Clear
    「MODE」→「Clear」の順にクリックします。
    iOSアプリの「SIGN IN」要素の内容をクリア(消去)する操作を実行する(※静的テキスト要素には通常クリア操作は適用されません)
    【生成されたスクリプト】
    driver.findElement(By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']")).clear();
  • Double Tap
    「MODE」→「Double Tap」の順にクリックします。
    iOSアプリの「SIGN IN」要素をダブルタップする操作を実行する。
    【生成されたスクリプト】
    new TouchAction(driver).tap(TapOptions.tapOptions().withTapsCount(2).withElement(ElementOption.element(driver.
    findElement(By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']")))))).perform();
  • Wait
    「MODE」→「Wait」の順にクリックします。
    「SIGN IN」という名前の静的テキスト要素を見つけ、その要素に対して1秒間待機する(waitメソッドは通常このように使用されません)。
    【生成されたスクリプト】
    driver.findElement(By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']")).wait(1000);
  • waitForObject
    「MODE」→「waitForObject」の順にクリックします。
    要素が表示されるまで最大30秒間待機し、表示されたら次の操作に進む。
    【生成されたスクリプト】
    WebDriverWait wait = new WebDriverWait(driver, 30); wait.until(ExpectedConditions.visibilityOf(driver.findElement
    (By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']"))));
  • Long Press
    「MODE」→「Long Press」の順にクリックします。
    iOSアプリの「SIGN IN」要素を2秒間長押しする操作を実行する。
    【生成されたスクリプト】
    new TouchAction(driver).longPress(LongPressOptions.longPressOptions().
    withDuration(Duration.ofSeconds(2)).withElement
    ((ElementOption.element(driver.findElement(By.xpath("//XCUIElementTypeStaticText[@name='SIGN IN']")))))).perform();
  • オブジェクト検索

    1. OBJECT FINDERでは、オブジェクト検索することができます。 「Find」をクリックします。
    2. OBJECT FINDERが表示されました。属性や検索タイプを設定し検索します。
    3. 「Attribute Name」のプルダウンリストより属性を選択します。
      選択できる属性:type/name/label/value/enabled
    4. 「Search Type(検索タイプ)」を選択します。
      • Exact match(完全一致):検索対象の文字列が、指定した文字列と完全に一致する場合にのみ結果を返す
      • Contains(含む):検索対象の文字列が、指定した文字列を部分的に含む場合に結果を返す
      • Is Empty(空):検索対象のフィールドが空(何も入力されていない)である場合に結果を返す
    5. 「Attribute Value」に検索する属性名を入力します。
    6. 「Find」をクリックします。
    7. 左側デバイス上に、一致する要素がフォーカスされ、画面右下に一致する要素数が表示されます。
      「Inspector」をクリックします。
    8. Step2に要素が含まれる階層のみ表示されます。表示されている行をクリックします。
    9. 対象の要素の行が確認できました。行をクリックすると、デバイス上にも表示されます。