在使用 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 将连接到你的设备,并加载应用。