iOS WebDriverAgent setup and control
qa_wdaSets up and manages iOS WebDriverAgent to support structured iOS tap, type, and snapshot automation, reusing builds and exposing status, logs, and diagnostics.
Instructions
Set up and manage iOS WebDriverAgent (WDA), needed for structured iOS tap/type/snapshot; start with action:"setup": it reuses a running WDA, else builds (if no build exists) and starts it as one consent-gated job (poll qa_job_status, then qa_wda attach). build/start are consent-gated; attach takes an external webDriverAgentUrl; status/doctor/diagnose/logs/tune inspect.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"sessionId": "<sessionId>",
"action": "<action>"
},
"name": "qa_wda"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| udid | No | Deprecated alias of device. | |
| action | Yes | build: background job, reuses a build unless rebuild:true. start: waits up to 45 s, then status:"starting" (poll qa_wait for:"wda_ready"). | |
| device | No | Simulator UDID (default: session device). | |
| scheme | No | Default WebDriverAgentRunner. | |
| approve | No | ||
| rebuild | No | build/setup: run build-for-testing even when a previous build (.xctestrun) exists. | |
| bundleId | No | Default: the session appId. | |
| consentId | No | ||
| sessionId | Yes | ||
| wdaProjectPath | No | WebDriverAgent.xcodeproj (default: Appium WDA if found). | |
| derivedDataPath | No | xcodebuild -derivedDataPath for reuse. | |
| allowNonLoopback | No | Required to use a non-loopback external WDA URL. | |
| webDriverAgentUrl | No | Default: this session's WDA (attached, or the last start / reuse), else ios.wda.url (http://127.0.0.1:8100). Non-loopback needs allowNonLoopback + consent. |