Appium AndroidDriver 的 DesiredCapabilities

DesiredCapabilities for Appium AndroidDriver

我是一名程序员,在自动化方面有相当多的经验。目前我正在开发 Appium。我已经阅读了 Appium 的文档并且能够 运行 Android 虚拟设备、物理设备和 GenyMotion 上的测试用例。但是我仍然不清楚以下所需的功能。

1) UDID

它代表我们连接的物理设备的唯一设备标识符。 我有两个问题。 (a) 当我们连接物理设备和运行 "adb devices"时它是相同的标识符吗? (b) 我们可以将其用于 Emulator/Simulator 或 AVD 吗?我在互联网上看到许多代码片段,它们将它用于如下所示的模拟器。

capabilities.setCapability("udid", "emulator-5554");

2) 设备名称

(a) 如何找到设备名称? (b) 是否有任何命令行工具 returns 所有已连接设备的名称? (c) UDID 和 Device name 是否相同?或者这是两个完全不同的东西? (d) 虚拟设备可以有设备名吗?

我看到了使用与 UDID 相同的 deviceName 值作为模拟器的代码片段。

capabilities.setCapability("udid", "emulator-5554");
capabilities.setCapability("deviceName", "emulator-5554");

我还看到许多在线代码片段使用了 "Android Emulator"、"Emulator" 和 "Android" 以及 "Nexus".

等值

3) 均值

(a) 我们是否必须将我们为虚拟设备设置的名称作为值传递给此参数? (b) 如果我们使用这个,我们必须使用设备还是udid?

4) 设备类型和设备

Appium 文档中没有列出这两个功能,但我已经看到很多代码片段使用它,如下所示。

capabilities.setCapability("deviceType", "phone"); 
capabilities.setCapability("device", "Android"); 

有人可以帮忙吗?

会一一解答您的问题

1) UDID: 仅当您想要 运行 与 ios 设备时使用,此功能不适用于 android,仅适用于 ios "real devices" 不是模拟器,您可以从 iTunes 或从设备信息 window 到 xcode.

获取 ios 设备的 uuid

2) deviceName: 命令 "adb devices" 将显示所有连接设备的名称,没有 uuid 是不同的设备名称,记住 uuid 仅用于 ios "real devices",对于模拟器,你可以 "Android Emulator",无论如何,如果你在功能中输入了错误的设备名称,它应该 运行 而且因为 appium 会寻找连接的设备,你会有一个问题,如果你有更多比设备连接到您的机器。

3) 当 运行 使用虚拟机 "emulator" 时需要这样做,如果您 运行 在您的机器上 运行ning 通过 appium 服务器 运行ning 您根本不需要传递这个能力。

4) 我根本没有在 appium 中看到这些功能,我也没有看到它们的任何用途,你看到的代码可能是一个非常旧的 appium 版本,当时需要它。