跳至内容

会话设置

Appium 有一组扩展 API,允许您在会话期间调整给定会话的参数。这些参数称为“设置”,类似于 功能,但功能在会话开始后无法调整,而设置在会话过程中可以随时调整任意次数。

设置的概念有 3 个重要要点

  • 设置是可变的;它们可以使用设置 API 在会话期间更改
  • 设置仅在设置它们的会话期间相关。它们通常在每个新会话中重置,尽管根据驱动程序的不同,某些设置可能会在会话之间保留
  • 设置仅调整 Appium 服务器在测试自动化期间的行为方式。它们不会影响正在测试的设备或应用程序

设置的一个示例是 UiAutomator2 驱动程序识别的 ignoreUnimportantViews 设置。可以指示驱动程序忽略它认为不相关的视图层次结构中的元素。将此设置更改为 true 会导致测试运行得更快。但是,如果您在同一会话的后期想要访问在此设置下会被忽略的元素,您始终可以将其更改回 false

设置通过以下 API 端点实现

命令
方法/路由
参数 描述 返回
更新设置 POST /session/:id/appium/settings settings (Record<string, any>) 更新提供的设置值 null
获取设置 GET /session/:id/appium/settings 返回当前设置 settings (Record<string, any>)

settings 对象必须是一组键值对,其中键是设置名称,值是该设置的任何记录的有效值。

信息

设置是特定于驱动程序的,因此请参阅您的驱动程序文档以获取支持的设置列表

通过功能初始化设置

如果您想使用非默认状态的设置启动 Appium 会话,您可以通过包含形式为 appium:settings[<name>] 的功能以及适当的值来实现。因此,要从会话一开始就打开上面提到的 ignoreUnimportantViews 设置,您将构建一组包含以下内容的 JSON 表示形式的功能

{
    "appium:settings[ignoreUnimportantViews]": true
}

此外,从 Appium 2.1 开始,可以在单个 appium:settings 功能值中提供多个设置

{
    "appium:settings": {
        "ignoreUnimportantViews": true,
        "allowInvisibleElements": true
    }
}

当然,通过功能初始化设置不会阻止您稍后通过设置 API 更改它。要了解如何在特定客户端库的上下文中使用设置 API,请访问该客户端的文档。