当前位置: 首页 > 文档资料 > Appium 中文文档 >

网络连接指南

优质
小牛编辑
131浏览
2023-12-01

Selenium [移动 JSON 协议规范](https://github.com/SeleniumHQ/mobile-spec/blob/master/spec-draft.md) 支持一个获取和设置网络连接的[API](https://github.com/SeleniumHQ/mobile-spec/blob/master/spec-draft.md#104)。这个 API 会设置一个掩码,每一个可能的网络状态对应一个掩码

值 (名称)数据Wifi飞行模式
0 (无网)000
1 (飞行模式)001
2 (Wifi)010
4 (移动数据)100
6 (所有网络)110

iOS

不幸的是,目前 Appium 不支持这个 API。

Android

Android 上有如下限制:

真机

  • 只能在 Android 6 或者以下,改变飞行模式
  • 只能在 Android 4.4 或者以下改变数据连接状态。5.0 或者以上必须 root 了之后才能工作。(比如,可以运行 su )
  • 所有的 Android 版本都能改变 WI-FI 连接状态

模拟器

  • 只能在 Android 6 或者以下,改变飞行模式
  • 所有的 Android 版本都能改变数据连接
  • 所有的 Android 版本都能改变 WI-FI 连接状态

Windows

不幸的是,目前 Appium 测试 Windows 应用,不支持这个 API。

// javascript
// set airplane mode
driver.setNetworkConnection(1)

// set wifi only
driver.setNetworkConnection(2)

// set data only
driver.setNetworkConnection(4)

// set wifi and data
driver.setNetworkConnection(6)

检索网络连接设置返回相同的掩码,其中状态可以解码。

// javascript
driver.getNetworkConnection().then(function (connectionType) {
  switch (connectionType) {
case 0:
  // no network connection
  break;
case 1:
  // airplane mode
  break;
case 2:
  // wifi
  break;
case 4:
  // data
  break;
case 6:
  // wifi and data
  break;
  }
});