這看出setValue命令,包含幾個步驟:檢查是否打開鍵盤、獲取輸入框、彈出鍵盤、輸入框賦值,每一個步驟都會和Device通訊。
看發送數據
/session/94f7526c-94ba-4ece-8740-d94bd3d4f50f/element/1A29AE60-5433-4B52-83F8-B4E2C794972E/value {"id":"1A29AE60-5433-4B52-83F8-B4E2C794972E","value":["1"]}
session/94f7526c-94ba-4ece-8740-d94bd3d4f50f 這個指定了當前這個case的唯一id,在第一次通信時確立。由于第一次通信比較復雜,在最后會講到。之后是id為1A29AE60-5433-4B52-83F8-B4E2C794972E 的Element,剛好是上一次請求列表的第一個元素,表明這次是對這個元素做操作。再看value,是一個json,定義的剛好是這個Eelemet和它的值,這些就是自動化統一接口的格式,一個簡單命令的定義。
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app","automationName":"XCUITest","platformName":"iOS","deviceName":"iPhone 6","platformVersion":"10.0"}}
[MJSONWP] Calling AppiumDriver.createSession() with args: [{"app":"/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app","automationName":"XCUITest","platformName":"iOS","deviceName":"iPhone 6","platformVersion":"...
[Appium] Creating new XCUITestDriver session
[Appium] Capabilities:
[Appium] app: '/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app'
[Appium] automationName: 'XCUITest'
[Appium] platformName: 'iOS'
[Appium] deviceName: 'iPhone 6'
[Appium] platformVersion: '10.0'
[debug] [XCUITest] XCUITestDriver version: 2.0.33
[BaseDriver] Session created with session id: 94f7526c-94ba-4ece-8740-d94bd3d4f50f
[debug] [XCUITest] Xcode version set to '8.0'
[debug] [XCUITest] iOS SDK Version set to '10.0'
[iOSSim] Constructing iOS simulator for Xcode version 8.0 with udid 'B9747B0B-C664-4C44-A651-9C3D8F7A980A'
// 開啟模擬器
[XCUITest] Determining device to run tests on: udid: 'B9747B0B-C664-4C44-A651-9C3D8F7A980A', real device: false
[BaseDriver] Using local app '/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app'
[debug] [XCUITest] Checking whether app '/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app' is actually present
[debug] [XCUITest] App is present
[debug] [ios-app-utils] Getting bundle ID from app '/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app': 'io.appium.TestApp'
[debug] [iOSLog] Starting iOS 10.0 simulator log capture
[debug] [iOSLog] System log path: /Users/zhiyu.zhao/Library/Logs/CoreSimulator/B9747B0B-C664-4C44-A651-9C3D8F7A980A/system.log
[XCUITest] Setting up simulator
[debug] [iOS] No reason to set locale
[debug] [iOS] No iOS / app preferences to set
[XCUITest] Simulator with udid 'B9747B0B-C664-4C44-A651-9C3D8F7A980A' not booted. Booting up now
[debug] [iOSSim] Killing all iOS Simulators
zhiyu.zhao@999999999:~|⇒ [iOSSim] Starting simulator with command: open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID B9747B0B-C664-4C44-A651-9C3D8F7A980A
[iOSSim] Tailing simulator logs until we encounter the string "SMS Plugin initialized"
[iOSSim] We will time out after 60000ms
[debug] [iOSSim] Waiting an extra 10000ms for the simulator to really finish booting
[debug] [iOSSim] Done waiting extra time for simulator
[iOSSim] Simulator booted in 26076ms
// 安裝TestApp、開啟WebDriverAgent
[debug] [XCUITest] Installing app '/Users/zhiyu.zhao/Desktop/appiumTest/sample-code/sample-code/examples/java/junit/../../../apps/TestApp/build/release-iphonesimulator/TestApp.app' on device
[XCUITest] Using default agent: /usr/local/lib/node
原文轉自:http://www.jianshu.com/p/aae160cb9cc4