テストで使用するiPadへの接続

接続の概要

テストシナリオアプリからテストで使用するiPadは、以下のように複数の経路で接続され、その設定は少し複雑です。

テストを開始するためには、以下の点が正しいことを確認してください。

テストシナリオアプリからの接続

具体的なコード例

const {Builder,Capabilities} = require("selenium-webdriver");
let driver = null;
try {
    const capabilities = new Capabilities();
    capabilities.setBrowserName("safari+G.O");

    driver = new Builder()
    .usingServer("http://192.168.1.147:7000/wd/hub")
    .withCapabilities(capabilities)
    .build();

    // テストコードをここへ

} catch (e) {
    console.log(e);
} finally {
    if(driver !== null)
        await driver.quit();
}

7行目が接続処理部分になり、G.O WebDriver ServerのIPアドレスとポート番号を含むURLを接続先サーバとして指定し、cpabilitiesにより接続先WebDriver Server内に定義されているiPad群から使用するiPad端末を指定しています。
capabilitiesは4,5行目で作成され、この例ではブラウザ名だけのシンプルな指定となっています。
「接続の概要」で示した図を例とした場合、iPad-A、iPad-B、iPad-Cのうち、設定情報でbrowserNameが”safari+G.O”となっているものが選択されます。
capabilitiesで指定した値が複数の設定情報に合致する場合、定義順で最初に合致したものが選択されます。
ただし、index.htmlページで[Select]を押して、接続待機中以外の端末は選択されません。

設定情報のcapabilitiesは、任意の指定を行うことができますが、一般的には以下の値を使用します。

項目名 説明
uuid

端末固有のIDを指定します。

指定例:
uuid: "dc1e5e48-e648-4063-98b9-3e25c32619af"

deviceName

端末の機種を示す名前を指定します。

指定例:
deviceName: “iPad”

browserName

ブラウザの名前を指定します。

指定例:
browserName: “safari+G.O”

browserVersion
(version)

ブラウザのバージョンを指定します。

指定例:
version: “14.3”
browserVersion: “14.3”

platformName
(platform)

プラットホーム名前を指定します。

指定例:
platform: “iPadOS”
platformName: “iPadOS”

orientation

端末の向きを指定します。

指定例:
orientation: “PORTRAIT“

接続の概要で示した図に対応する設定情報の抜粋は以下のようになります。

capabilities:
  - uuid: "dc1e5e48-e648-4063-98b9-3e25c32619af"
    -mps-env:
      useSpecialKeyMap: true
      ports:
        hid: "COM3"
      mouse:
        type: "hid"
      keyboard:
        type: "hid"
        lang: "us"
      hid:
        did: 0
      deviceName: "iPad-A"
      browserName: "safari+G.O"
      version: "14.0.1"
      platform: "iPadOS"
      orientation: "PORTRAIT"
            :
  - uuid: "d200f111-f97f-44d6-a1a9-e5eaea3808dd"
    -mps-env:
      useSpecialKeyMap: true
      ports:
        hid: "COM4"
      mouse:
        type: "hid"
      keyboard:
        type: "hid"
        lang: "us"
      hid:
        did: 1
      deviceName: "iPad-B"
      browserName: "safari+G.O"
      version: "14.0.1"
      platform: "iPadOS"
      orientation: "PORTRAIT"
            :
  - uuid: "29908ada-eb21-42a1-838a-6bbd0675acd9"
    -mps-env:
      useSpecialKeyMap: true
      ports:
        hid: "COM5"
      mouse:
        type: "hid"
      keyboard:
        type: "hid"
        lang: "us"
      hid:
        did: 2
      deviceName: "iPad-C"
      browserName: "safari+G.O"
      version: "14.0.1"
      platform: "iPadOS"
      orientation: "PORTRAIT"
            :

上記の設定情報で、iPad-Bを選択するためには以下のようにcapabilitiesを構成して接続します。

const capabilities = new Capabilities()
    .setBrowserName("safari+G.O")
    .set("deviceName","iPad-B");

また、特定の端末を指定せずに利用可能な端末を自動的に選択するためには、以下のように記述します。

const capabilities = new Capabilities()
    .setBrowserName("safari+G.O");