WebDriverAgent作为一个server端,使用USB和手机通信,然后通过向客户端发送一系列的HTTP请求,实现对客户端的操作。
下面把WebDriverAgent给出的请求示例介绍一下。
WebDriverAgent Wiki

为了实现python封装WebDriverAgent的client端,先对部分api简要介绍一下

检查服务连接状态

curl -X GET $JSON_HEADER $DEVICE_URL/status

已经安装过应用

curl -X POST $JSON_HEADER \ -d "{\"desiredCapabilities\":{\"bundleId\":\"com.apple.mobilesafari\"}}" \ $DEVICE_URL/session

未安装应用

curl -X POST $JSON_HEADER \ -d "{\"desiredCapabilities\":{\"bundleId\":\"com.apple.mobilesafari\", \"app\":\"[host_path]/magicapp.app\"}}" \ $DEVICE_URL/session

确认当前的session

curl -X GET $JSON_HEADER $DEVICE_URL/session/$SESSION_ID

删除session并关闭应用

curl -X DELETE $JSON_HEADER $DEVICE_URL/session/$SESSION_ID

回到主界面

curl -X POST $JSON_HEADER -d "" $DEVICE_URL/homescreen

截图

curl -X GET $JSON_HEADER $DEVICE_URL/screenshot

给定时间内关闭应用

curl -X POST $JSON_HEADER -d "{\"duration\":3}" $DEVICE_URL/session/$SESSION_ID/deactivateApp

改变设备定位

curl -X POST $JSON_HEADER \ -d "{\"orientation\":\"LANDSCAPE\"}" \ $DEVICE_UR /session/$SESSION_ID/orientation

获取树文件

curl -X GET $JSON_HEADER $DEVICE_URL/source

curl -X POST $JSON_HEADER \ -d "{\"using\":\"link text\",\"value\":\"label=Apple\"}" \ $DEVICE_URL/session/$SESSION_ID/elements

curl -X POST $JSON_HEADER \ -d "{\"using\":\"partial link text\",\"value\":\"label=App\"}" \ $DEVICE_URL/session/$SESSION_ID/elements

class name定位

curl -X POST $JSON_HEADER \ -d "{\"using\":\"class name\",\"value\":\"XCUIElementTypeButton\"}" \ $DEVICE_URL/session/$SESSION_ID/elements

xpath定位

curl -X POST $JSON_HEADER \ -d "{\"using\":\"xpath\",\"value\":\"//XCUIElementTypeButton[@name='Share']\"}" \ $DEVICE_URL/session/$SESSION_ID/elements

predicate string定位

curl -X POST $JSON_HEADER \ -d "{\"using\":\"predicate string\",\"value\":\"isWDVisible=1\"}" \ $DEVICE_URL/session/$SESSION_ID/elements

id 或者 name 定位

curl -X GET $JSON_HEADER $DEVICE_URL/session/$SESSION_ID/uiaElement/:id/getVisibleCells