モバイルデバイステストのためのWebDriverコマンドと関数
WebDriverのコマンドと関数を使用して、iOSおよびAndroidのモバイルデバイスを自動化することができます。iOSデバイスを自動化するためには無料のiOS Gatewayが必要です。Androidのテストには無料のAndroid Gatewayを使用できます。
iOSデバイスでのWebDriverテストにおいて正確にWebElementsをクリックするためには、高速スクリーン更新を有効にする必要があります。
モバイルWebDriverテストでは、テストするシステムのブラウザではなく、特定のアプリへの接続が行われます。WebDriverを使用したテストは、テストしているアプリ内のさまざまな要素とのインタラクションを基にしています。
WebElement識別子
WebDriver接続とFindElement()
関数やClick
コマンドを使用してテストしているアプリ内のWebElementにアクセスするためには、インタラクションしたい要素を特定する必要があります。以下のWebElement識別子を使用して、モバイルデバイス上の要素を特定することができます:
- webID: このプロパティを使用して、ID属性の値により要素を特定します。
- webName: このプロパティを使用して、Name属性の値により要素を特定します。
- webClassName: このプロパティを使用して、Class属性の値により要素を特定します。
- webXPath: このプロパティを使用して、XPath表現を使用して要素を特定します。XPathとXPath表現についての情報は、XPath in Selenium WebDriver: Complete Tutorialを参照してください。
- webAccessibilityID: このプロパティを使用して、Accessibility ID属性の値により要素を特定します。
WebConnect
コマンド
- このコード定義は、モバイルWebDriver接続のための
WebConnect
コマンドの使用方法を説明します。このコマンドをブラウザベースのWebDriver接続に使用する方法については、WebDriver Actions: WebConnect Commandを参照してください。 - Eggplant機能を介したSauce Labsへの接続が確立されると、ConnectコマンドはVNC接続とWebDriver接続の両方を確立します。Sauce Labsへの接続に対してWebDriverコマンドを直接送信することができます。明示的なWebDriver接続と同様に。
- モバイルデバイス接続を使用している場合、WebConnectコマンドはサポートされていますが、推奨されていません。Eggplant Functional は、モバイルデバイス 接続を確立すると、自動的に WebDriver 接続を開きます。 モバイルデバイス接続のコンテキストで WebConnect を使用することは、高度なユースケースと見なされ、このドキュメントの範囲外です。
動作: このコマンドはモバイルデバイス上の特定のアプリへの接続を確立します。
パラメータ: WebConnect
コマンドは以下のパラメータを取ることができます:
browser:
Optional.プラットフォーム名:
モバイル専用。必須。モバイルデバイスのオペレーティングシステム。port
: Required. モバイルWebDriver接続を作成するためのポート番号。iOS接続のデフォルトポートは8100です。Android接続のデフォルトポートは4723です。名前:
オプション。この接続を参照するために使用する名前です。これはEggplant Functional Connectionリストに表示される名前です。これが指定されると、スクリプトはその接続のブラウザ
、ホスト
、ポート
、そしてプラットフォーム名
(モバイルの場合)を引き出します。これらのプロパティのいずれかがWebConnect
コマンドに提供されると、それはConnectionリストで設定されたものを上書きします。指定した名前の接続がEggplant Functional Connectionリストに存在しない場合、新しい接続が作成され、提供された情報で保存されます。host
: Required. モバイルデバイス接続については、これは常にlocalhost
です。appActivity:
Android専用。必須。アプリを開きた いアプリの画面。このパラメータは大文字と小文字を区別します。自動化名:
Android専用。必須。デバイスをテストするために使用する自動化エンジン。appPackage:
Android専用。必須。開き、テストしたいモバイルアプリの識別子。このパラメータは大文字と小文字を区別します。bundleId:
iOS専用。必須。開き、テストしたいモバイルアプリの識別子。このパラメータは大文字と小文字を区別します。デバイス:
Android専用。必須。デバイスのID番号。これはコマンドラインでadb devices
を入力することで見つけることができます。
構文:
WebConnect 接続プロパティ
_connectionProperties_には以下が含まれます: browser:browserName, {host:hostAddress,} {port:portName,} {url:pageURL,} {name:connectionName,} {desiredCapabilities:{capabilitiesPropertyList}} {platformName: NameofPlatform,} {bundleId: bundleIDNumber}
希望する能力
の場合、波括弧は必須の構文の一部であり、SauceLabs接続と通信する際に使用されます。
例:
WebConnect ホスト:"localhost", ポート:"8100",プラットフォーム名: "iOS", バンドルID: "com.apple.Maps"
例:
WebConnect ホスト: "localhost", ポート: "4723", プラットフォーム名: "Android", デバイス: "04157df49c1d0533", デバイス名: "Android", アプリパッケージ: "com.google.android.apps.maps", アプリアクティビティ: "com.google.android.maps.MapsActivity", 自動化名: "UIAutomator2"