导航

Appium Inspector

Posted on 2024-05-15 10:46  蝈蝈俊  阅读(87)  评论(0编辑  收藏  举报

在使用 Appium 开发应用时,可以通过多种方式抓取指定区域的内容并定位到该位置。Appium Inspector (https://github.com/appium/appium-inspector)就是其中一个很方便的工具。

安装

Appium Inspector 支持Win、Mac、Linux平台,安装方法很简单,见:

https://appium.github.io/appium-inspector/latest/quickstart/installation/

Appium 服务器 并未与 Inspector 捆绑在一起。需要各自按照,可以一起在本地或远程运行。

远程连接Appium 服务器

Appium 服务器启动时,会给出运行的IP地址,可以基于这个配置Inspector。

[Appium] Appium REST http interface listener started on http://0.0.0.0:4723
[Appium] You can provide the following URLs in your client code to connect to this server:
[Appium]        http://192.168.1.5:4723/
[Appium]        http://127.0.0.1:4723/ (only accessible from the same host)

Capability Builder

要想连接到设备,必须指定automationName和platformName,否则就会报错误:

Failed to create session. 'automationName' can't be blank; 'platformName' can't be blank

指定自动化引擎 automationName

确保 automationName 设置为 "UiAutomator2",这是推荐用于 Android 的自动化引擎。

"automationName": "UiAutomator2"

指定设备平台 platformName

我们这里使用Android设备, 就是

"platformName": "Android"

上面两个是必须的,

指定设备

我们可以更精准的指定设备,这就是下面两个参数:

获取设备序列号

adb devices

# 输入类似如下:
List of devices attached
emulator-5554   device
1234567890ABCDEF   device
# 列表中的每一行表示一个连接的设备。
# 左边的字符串是设备的序列号(udid)

获取设备名称

你可以使用以下命令来获取设备的实际名称:

adb -s <device_serial_number> shell getprop ro.product.model

# 以上面的设备序列号为例:
adb -s 1234567890ABCDEF shell getprop ro.product.model

这将返回设备的型号名称,例如 Pixel_3a。

具体到这里就是要指定下面参数

  "deviceName": "Pixel_3a",
  "udid": "1234567890ABCDEF",

指定程序和界面

想更具体的打开程序,则可以指定:

  "appPackage": "com.example.yourapp",
  "appActivity": "com.example.yourapp.MainActivity"

配置好 Desired Capabilities 上面的参数后,点击“Start Session”按钮启动一个新的会话。Appium Inspector 将连接到你的设备,并加载应用。