跳至内容

管理驱动程序和插件

要使用 Appium 做任何有用的事情,您至少需要安装一个 驱动程序,否则 Appium 将不知道如何自动化任何东西。有一个完整的 生态系统 的驱动程序和插件在那里!

本指南将帮助您了解如何管理这些驱动程序和插件。有两种基本策略:使用 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]

运行这些命令将导致创建两个单独的 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.yaml 中的 extensions.yaml 管理。

使用 npm 自己动手

由于 Appium 和 Appium 驱动程序是 Node.js 程序,如果您将 Appium 脚本集成到您自己的 Node.js 项目中,则有一种替代方法来管理驱动程序和插件:通过 npm,就像任何其他依赖项一样。基本上,无论何时运行 Appium,如果您没有明确设置 APPIUM_HOME,它将

  1. 尝试确定当前目录是否在 npm 包内。
  2. 如果是,它将检查 appium 是否是项目 package.json 中的依赖项(开发、生产或对等)。
  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 以更改存储扩展的位置。