iOS自動化探索(二)WDA API的使用


前面我們已經安裝好了WebdriverAgent, 現在可以用Facebook官方提供的API來進行一些操作

WDA API官方頁面:

https://github.com/facebook/WebDriverAgent/wiki/Queries

如果在終端運行的話可以使用curl來調用API,需要搭配json_header +  device_url + api組成,其中

json_header一般是: "Content-Type: application/json"

device_url一般是: http://localhost:8100/*

 

下面我們試試調用這些API

功能: 查詢可服務狀態(Checking Service Status)

API: curl -X GET $JSON_HEADER $DEVICE_URL/status

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:8100/status
{
  "value" : {
    "state" : "success",
    "os" : {
      "name" : "iOS",
      "version" : "11.2.1"
    },
    "ios" : {
      "simulatorVersion" : "11.2.1",
      "ip" : "192.168.1.5"
    },
    "build" : {
      "time" : "Dec 25 2018 11:48:43"
    }
  },
  "sessionId" : "FB941AE9-551D-437E-A376-191DDDB354FB",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 

 

功能:打開會話並開啟APP(Session handling)

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

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -XPOST -H "Content-Type: application/json" -d "{\"desiredCapabilities\":{\"bundleId\":\"NOVA.ProductDemo\"}}" http://localhost:8100/session
{
  "value" : {
    "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
    "capabilities" : {
      "device" : "iphone",
      "browserName" : "ProductDemo",
      "sdkVersion" : "11.2.1",
      "CFBundleIdentifier" : "NOVA.ProductDemo"
    }
  },
  "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 

 

功能:查詢當前會話(Querying current session)

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

使用示范:

Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:800/session/C7844276-1CB0-4165-9621-65B9B1E10E64
{
  "value" : {
    "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
    "capabilities" : {
      "device" : "iphone",
      "browserName" : "ProductDemo",
      "sdkVersion" : "11.2.1",
      "CFBundleIdentifier" : "NOVA.ProductDemo"
    }
  },
  "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 

 

功能:關閉會話並關閉程序(Removing session and kill application)

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

使用范例:

Jackeys-MacBook-Pro:~ jackey$ curl -X DELETE -H "Content-Type: application/json" -d "" http://localhos:8100/session/C7844276-1CB0-4165-9621-65B9B1E10E64
{
  "value" : {

  },
  "sessionId" : "406A1A5B-0164-4DA2-BFD9-051155F8B4B2",
  "status" : 0
}Jackeys-MacBook-Pro:~ jackey$ 

 

功能:打開inspector

API: $DEVICE_URL/inspector

使用范例:

http://localhost:8100/inspector

 

功能:返回home screen

API: curl -X POST $JSON_HEADER -d "" $DEVICE_URL/wda/homescreen

使用范例:

Jackeys-MacBook-Pro:~ jackey$ curl -X POST -H "Content-Type: application/json" -d“” http://localhost:8100/wda/homescreen
{
  "value" : "Error Domain=com.facebook.WebDriverAgent Code=1 \"Timeout waiting until SpringBoard is visible\" UserInfo={NSLocalizedDescription=Timeout waiting until SpringBoard is visible}",
  "sessionId" : "967066CF-E504-4DAA-B18D-86A0EF0AD53A",
  "status" : 13
}Jackeys-MacBook-Pro:~ jackey$ 

 

功能:指定時間后退出app

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

 

更多參考:https://github.com/facebook/WebDriverAgent/wiki/Queries

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM