跳至内容

扩展命令行使用

Appium 允许灵活安装和管理各种扩展,例如驱动程序(为 Appium 提供自动化特定平台的功能)和插件(可以增强或改变单个 Appium 命令的工作方式)。有关这些实体的概念理解,请查看介绍

驱动程序和插件的管理由 Appium 的扩展 CLI(命令行界面)处理。

注意

此参考使用占位符来引用各种选项。在参考中看到这些占位符的任何地方,请确保将其替换为正确类型的实际内容。

占位符 含义
<ext-type> "扩展类型"。它应该是 driverplugin。所有扩展 CLI 命令都可以与驱动程序或插件一起使用,因此您必须指定将使用哪种类型的扩展
<ext-name> "扩展名称"。这是在调用 appium <ext-type> list 时找到的扩展的简短名称。这与扩展的 NPM 包名称或通常的扩展“安装规范”不同。
<install-spec> "安装规范"。这指的是用于指示 Appium 应该安装哪个扩展的字符串。
<install-source> 这指的是 Appium 应该用来安装扩展的方法。

命令

所有扩展 CLI 命令都以 appium <ext-type> 开头,即 appium driverappium plugin

所有扩展 CLI 命令都可以接受一个可选的 --json 参数,该参数将以机器可读的 JSON 字符串形式返回命令的结果,而不是标准输出,标准输出是彩色化的,并针对人类消费进行了调整。

list

列出已安装和可用的扩展。“可用”扩展包括 Appium 团队正式认可的扩展,但您不限于仅安装此列表中显示的扩展。

用法

appium <ext-type> list [--installed] [--updates] [--json]

必需参数

  • <ext-type>: 必须是 driverplugin

可选参数

  • --installed: 仅显示已安装的扩展,而不是已安装的扩展加上可用的扩展
  • --updates: 对于通过 NPM 安装的扩展,如果存在任何更新,则显示一条消息
  • --json: 以 JSON 格式返回结果

install

安装扩展。如果成功,将使用可以在扩展 CLI 的其他调用中使用的扩展的简短名称进行响应。如果扩展是驱动程序,还会注意哪些平台可以使用该驱动程序。

用法

appium <ext-type> install <install-spec> [--source=<install-source>] [--package=<package-name>] [--json]

必需参数

  • <ext-type>: 必须是 driverplugin
  • <install-spec>: 这是您要安装的扩展的名称、位置和/或版本。它的可能值取决于 <install-source>(见下文)。

可选参数

  • --source: 这指示 Appium 在哪里找到您的扩展。有关可能的源类型表及其对应的安装规范,请参见下文。
  • --package: 当 <install-source>gitgithub 时,--package 是必需的。它应该是扩展的 Node.js 包名称。没有此信息,Appium 将无法找到已安装的包。
  • --json: 以 JSON 格式返回结果
安装源类型 行为
这是在没有使用 --source 时,默认的行为。在这种情况下,Appium 将查看 <install-spec> 并将其与运行 appium <ext-type> list 时可用的扩展名称进行匹配,即与正式认可的扩展名称进行匹配。如果找到,它将通过 NPM 安装该扩展的最新版本
npm 根据其 NPM 包名称安装扩展。在这里,<install-spec> 必须是 NPM 包名称,以及任何其他 NPM 安装修饰符,如版本(见下文)
github 通过 <org>/<repo> 形式的 GitHub 规范安装扩展
git 通过 Git URL 安装扩展(例如,git+ssh://git-host.com/repo.git
local 通过本地路径安装扩展。这必须是驱动程序的 Node.js 包信息所在的目录的路径。

基于 NPM 的 <install-spec>

当 Appium 通过 NPM 安装扩展时(当 --source 被省略或设置为 npm 时,情况就是这样),<install-spec> 可能很复杂,并且可以包含 npm install 允许的任何类型的信息

  • [@scope]/<name>
  • [@scope]/<name>@<version>
  • [@scope]/<name>@<tag>
  • [@scope]/<name>@<version range>

示例

  • 安装最新的 XCUITest 驱动程序

    appium driver install xcuitest
    
  • 安装版本为 4.11.1 的 XCUITest 驱动程序

    appium driver install [email protected]
    
  • 从 NPM 安装 @appium/fake-driverbeta 版本

    appium driver install --source=npm @appium/fake-driver@beta
    
  • 安装本地开发的插件

    appium plugin install --source=local /path/to/my/plugin
    

update

更新一个或多个通过 NPM 安装的扩展。默认情况下,Appium 不会自动更新任何其主版本中包含修订版的扩展,以防止意外的重大更改。

用法

appium <ext-type> update <ext-name> [--unsafe] [--json]

必需参数

  • <ext-type>: 必须是 driverplugin
  • <ext-name>: 要更新的扩展的名称,或字符串 installed(这将更新所有已安装的扩展)

可选参数

  • --unsafe: 指示 Appium 继续更新,即使超过了主要版本边界
  • --json: 以 JSON 格式返回结果

uninstall

删除已安装的扩展。

用法

appium <ext-type> uninstall <ext-name> [--json]

必需参数

  • <ext-type>: 必须是 driverplugin
  • <ext-name>: 要卸载的扩展的名称

可选参数

  • --json: 以 JSON 格式返回结果

run

运行扩展包中包含的脚本。扩展作者可以包含可运行的脚本,这些脚本可以帮助进行设置或执行其他任务。这些脚本由扩展作者命名(在此参考中称为 <script-name>),通常会在扩展文档中进行说明。

用法

appium <ext-type> run <ext-name> [--json] <script-name> [script-args]

必需参数

  • <ext-type>: 必须是 driverplugin
  • <ext-name>: 要运行其脚本的扩展的名称
  • <script-name>: 扩展发布的脚本的名称

可选参数

  • script-args: Appium 不解释为属于其自身参数集的任何参数都将传递给扩展脚本
  • --json: 以 JSON 格式返回结果

示例(运行 UiAutomator2 驱动程序中包含的 reset 脚本)

appium driver run uiautomator2 reset

doctor

如果给定扩展有任何医生检查,则运行这些检查。扩展作者可以包含可运行的脚本,这些脚本可以帮助进行驱动程序或插件先决条件验证。这些脚本必须是有效的 Node.js 源代码,必须在包清单中列出,并且必须导出符合特定要求的类实例。有关这些要求的更多详细信息,请参见构建医生检查教程。

用法

appium <ext-type> doctor <ext-name>

示例(运行 UiAutomator2 驱动程序的医生检查)

appium driver doctor uiautomator2