- Test Suite の利用を開始する
- Studio
- Orchestrator
- Testing ロボット
- Test Manager
トラブルシューティング シナリオ
問題が発生した場合は、以下のトラブルシューティング シナリオを検討してください。
以下のトピックでは、モバイル デバイス オートメーションの問題と解決策について説明します。
説明: Studio のワークフローで予期しないエラーが発生し、インストール済みのアクティビティ パッケージのバージョンが表示されません。
原因: プロジェクト内で、UI.Automation アクティビティ パッケージのメジャー バージョンが Mobile.Automation アクティビティ パッケージのメジャー バージョンと一致していません。たとえば、インストールされている UI.Automation パッケージのメジャー バージョンが 22.10.x で、インストールされている Mobile.Automation パッケージのメジャー バージョンが 22.4.x である場合です。
解決策: プロジェクトにインストールされている UI.Automation アクティビティ パッケージと Mobile.Automation アクティビティ パッケージのメジャー バージョンが一致していることを確認します。たとえば、v22.10.x の UI.Automation.Activities は v22.10.x の Mobile.Automation.Activities とのみ組み合わせます。
条件: Appium 2.0 を使用している場合。
/wd/hub/session
のルートが見つかりません。
--base-path /wd/hub
を手動で追加します。
条件: Appium 2.0 を使用している場合。
説明: 非標準のすべての機能には、ベンダー プレフィックスを付ける必要があります。
appium:
を手動で追加します。
- コマンド プロンプトまたはターミナルで、「
--default-capabilities "{\"systemPort\": 8201}"
」ではなく、「--default-capabilities "{\"appium:systemPort\": 8201}"
」と入力します。 - モバイル デバイス マネージャーの [デバイスを追加] タブで、希望する追加機能の名前の前にプレフィックス
appium:
を手動で追加します。
条件: Appium 2.0 を使用している場合。
automationName
機能は空白にできません。
appium:
をプレフィックスとして追加します。たとえば、appium:automationName
です。
条件: Appium 2.0 を使用している場合。
説明: 指定した機能をサポートするためのインストール済みドライバーが見つかりませんでした。
Appium 2.0 では、必要なドライバーが自動的にはインストールされません。別途ダウンロードする必要があります。
解決策: お使いのプラットフォームに必要なドライバーをインストールします。
- Android デバイスの場合は、コマンド
appium driver install uiautomator2
を使用して、uiautomator2
ドライバーをインストールします。 - iOS デバイスの場合は、コマンド
appium driver install xcuitest
を使用して、xcuitest
ドライバーをインストールします。
以下のトピックでは、Android デバイスの問題と、対応する解決策について説明します。
InvalidArgumentException
のために失敗することがあります。
この問題は、Appium が Boolean 値を予期しているのに対し、ケーパビリティが String として入力されている場合に発生します。
内容を示すエラー メッセージには以下が含まれます。
Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '<capability name>' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
Failed to create session.
A new session could not be created.
Details: io.appium.uiautomator2.common.exceptions.InvalidArgumentException:
Invalid '<capability name>' setting value type.
Got java.lang.String. Expected: java.lang.Boolean
解決策: ローカル デバイスから次のアプリをアンインストールします。
io.appium.uiautomator2.server
io.appium.uiautomator2.server.test
WebDriverException
が発生することがあります。このエラーは通常、「Parameters were incorrect. We wanted {\"required\":[\"text\"]} and you sent [\"value\"]", "FaultCode":"WebDriverException"}
」と表示されます。
解決策: UiAutomator 2 の現在のバージョンをアンインストールします。その後、次のコマンドを指定の順序で使用して、新しいバージョンをインストールします。
appium driver uninstall uiautomator2
appium driver install uiautomator2@2.29.0
。2.29.0
はインストールするバージョンです。利用可能な任意のバージョンに置き換えることができます。
npm install -g appium
(Appium 1.x の場合)、または npm install -g appium@next
(Appium 2.0 の場合) の実行が失敗します。この問題は、コマンドをプロキシの背後で実行していることが原因で発生します。このエラーでは、次のメッセージが表示されます。
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network npm ERR! network If you are behind a proxy, please make sure that the npm ERR! network 'proxy' config is set properly.
See: 'npm help config'
解決策: プロキシを使用するように npm (Node Package Manager) を設定します。以下の手順を実行します。
-
お使いのプロキシ サーバーのアドレスとポート番号を取得します。
- [インターネット オプション] に移動します。
- [接続] タブを開きます。
-
[LAN の設定] を選択し、[アドレス] および [ポート] フィールドの内容をコピーします。
-
Node.js のコマンド プロンプトに戻り、次の形式のコマンドを実行します。
- HTTP プロキシの場合:
npm config set http://your_proxy_address:your_port_number
- HTTPS プロキシの場合:
npm config set https://your_proxy_address:your_port_number
- HTTP プロキシの場合:
- コマンド
npm install -g appium
(Appium 1.x の場合)、またはnpm install -g appium@next
(Appium 2.0 の場合) を再度実行します。
説明: 指定した Web コンテキストにアクセスできませんでした。Android WebView がデバッグ可能であることを確認してください。Web コンテキストへのアクセスの詳細については、「Remote debugging WebViews」をご覧ください。
解決策:
- 認識されない Web コンテキストで、WebView をネイティブ セレクターとして使用します。
- セレクターが Web アプリケーションでは機能するもののアプリケーションでは機能しない場合、そのアプリケーションでは WebView のデバッグは有効化されません。この場合、「Get started with remote debugging Android WebViews」および「Remote debugging WebViews」をご覧ください。
説明: デバイスが認可されていません。
解決策: 次の手順を実行します。
- コマンド
adb devices
を使用して、存在するデバイスを確認します。 - スマートフォンでのデバッグを取り消します。
- コマンド
adb kill-server
、adb start-server
をこの順序で使用して、adb サーバーを再起動します。 - デバイスを再接続し、そのデバイスでの接続に同意します。
説明: Android デバイスが、指定したアプリではなくブラウザー オートメーションを起動するため、エラーが発生します。
解決策: 代わりに Web ブラウザーで開始します。
以下のトピックでは、iOS デバイスの問題と解決策について説明します。
説明: WebView 要素をクリックしてもセレクターが機能せず、要素を自動化できません。
解決策: シミュレーターを最新バージョンの iOS と Appium 2 で使用します。
説明: iOS 物理デバイスの起動に失敗します。
解決策: 次の手順を実行します。
- デバイスで証明書が信頼されていることを確認します。デバイス上で [設定] > [一般] > [プロファイルとデバイス管理] に移動し、メールのエントリ (例: Apple Development: username@email.com) をタップ後、証明書を信頼します。会社のアカウントを使用しているデバイスでは、この操作は不要です。
- ポート 8100 にアクセスできないというエラーが発生する場合は、Appium をいったん閉じて (
ctrl + c
) 再起動します。 - 別のエラーが発生する場合は、「Appium XCUITest Driver Real Device」を参照することをお勧めします。
説明: iOS 16.0 デバイスが起動または接続に失敗します。
解決策: Appium 1 ではなく Appium 2.0 をインストールして使用します。Appium 2.0 のインストールと管理の詳細については、「ローカル iOS デバイスの前提条件」をご覧ください。
- モバイル デバイス オートメーション
- ワークフローやアクティビティでエラーが発生する
- wd/hub/ session のルートが見つからない
- 非標準のすべての機能にベンダー プレフィックスが必要
- automationName を空白にできない
- インストールされているドライバーが見つからない
- Android
InvalidArgumentException
が原因でケーパビリティの接続が失敗するWebDriverException
が原因でアクティビティが失敗する- プロキシが原因で Appium のインストールが失敗する
- 指定した Web コンテキストにアクセスできない
- デバイスが認可されていない
- 起動画面からの開始時にブラウザー オートメーションが起動する
- Android アプリが起動しない
- iOS
- iOS 13 で WebView 要素をクリックできない
- iOS 物理デバイスの起動に失敗する
- iOS 16.0 デバイスの起動に失敗する
- iOS 12.4.5 の不具合