コンテンツへスキップ

ドライバーとプラグインの管理

Appiumで何か便利なことをするには、少なくとも1つのドライバーがインストールされている必要があります。そうしないと、Appiumは何を自動化すればよいかわかりません。そこにはドライバーとプラグインのエコシステム全体があります!

このガイドでは、これらのドライバーとプラグインを管理する方法について説明します。基本的な戦略は2つあります。Appiumの拡張CLIインターフェイスを使用するか、npmベースのプロジェクトで拡張機能を自分で管理するかです。

注意

他のパッケージマネージャーは現在サポートされていません。

Appiumの拡張CLIの使用

Appiumの拡張CLIを使用すると、Appiumにドライバーとプラグインの管理を任せることができます。CLIコマンドを使用して、インストール、更新、または削除する拡張機能をAppiumに指示します。CLIを使用してドライバーをインストールする方法の例を次に示します。

appium driver install xcuitest

このコマンドは、XCUITestドライバーの最新バージョンをインストールします。拡張CLIには、さまざまなコマンドとパラメーターが付属しています。詳細については、そのコマンドのドキュメントを参照してください。

Appiumが拡張機能を管理している場合に最も重要な質問は、それらがどこにインストールされているかということです。Appiumは、APPIUM_HOME環境変数で指定されたディレクトリで拡張機能を管理します。その変数を好きなように設定でき、Appiumはそこに拡張機能を管理します。したがって、たとえば、競合するバージョンで同じドライバーをインストールする場合など、APPIUM_HOME環境変数を使用して、さまざまな拡張機能のセットを管理することもできます。

APPIUM_HOME=/path/to/home1 appium driver install [email protected]
APPIUM_HOME=/path/to/home2 appium driver install [email protected]

これらのコマンドを実行すると、2つの異なるAPPIUM_HOMEディレクトリが作成され、対応するバージョンのXCUITestドライバーが設定されます。次に、同じ環境変数を使用して、起動時に使用するバージョンをAppiumに指示できます。

APPIUM_HOME=/path/to/home1 appium  # use xcuitest driver 4.11.1
APPIUM_HOME=/path/to/home2 appium  # use xcuitest driver 4.11.2

必要ない場合は、APPIUM_HOMEを設定する必要はありません。デフォルトでは、AppiumはAPPIUM_HOMEをユーザーのホームディレクトリの.appiumディレクトリに設定します。

これらのインストールされたパッケージは、$APPIUM_HOME/node_modules/.cache/appium/extensions.yamlextensions.yamlによって管理されます。

npmを使ったDIY

AppiumとAppiumドライバーはNode.jsプログラムであるため、Appiumスクリプトを独自のNode.jsプロジェクトに統合している場合は、ドライバーとプラグインを管理する別の方法があります。それは、他の依存関係と同様にnpmを介して行う方法です。基本的に、Appiumを実行するときはいつでも、APPIUM_HOMEを明示的に設定していない場合は、次のようになります。

  1. 現在のディレクトリnpmパッケージ内にあるかどうかを判断しようとします。
  2. もしそうなら、プロジェクトのpackage.jsonappiumが依存関係(dev、prod、またはpeer)であるかどうかを確認します。
  3. もしそうなら、環境でAPPIUM_HOMEを指定していない限り、Appiumはそのpackage.jsonファイルで定義されているドライバーとプラグインのロードを無視します。

つまり、Appiumドライバーとプラグインを通常のパッケージ依存関係または開発依存関係として自由に追加できます。たとえば、プロジェクトに次のものを含むpackage.jsonがある場合

{
  "devDependencies": {
    "appium": "^2.0.0",
    "appium-xcuitest-driver": "^4.11.1"
  }
}

次に、プロジェクト内でnpx appiumを実行すると、Appiumはそれがプロジェクトの依存関係であることを検出し、プロジェクトの開発依存関係としてもリストされているXCUITestドライバーをロードします。

この戦略は、プロジェクトですでにnpmを使用している場合にのみ推奨されます。それ以外の場合は、Appiumの拡張CLIを使用し、必要に応じて、保存された拡張機能の場所を変更するためにAPPIUM_HOMEを調整することをお勧めします。