iOS自动化实践——WebDriverAgent(二)
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
link_text定位
curl -X POST $JSON_HEADER \ -d "{\"using\":\"link text\",\"value\":\"label=Apple\"}" \ $DEVICE_URL/session/$SESSION_ID/elements
partial link text定位
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