• English
  • Set up WebDriverAgent

    Before you begin, make sure you have the following iOS development environment ready:

    • macOS (required for iOS development and device debugging)
    • Xcode and Xcode Command Line Tools
    • An iOS Simulator or physical iOS device
    Version requirement

    WebDriverAgent version must be >= 7.0.0.

    Follow the official Appium documentation to build and configure WebDriverAgent (WDA):

    Real-device connection and port forwarding

    When using a physical device, connect it to your Mac over USB, tap Trust This Computer on the device, and enable both Developer Mode and UI Automation in Settings. After completing code signing and starting WDA on the device per the guide above, use iproxy (installable via brew install libimobiledevice) to forward port 8100 from the device to your Mac:

    iproxy 8100 8100 YOUR_DEVICE_ID

    Replace YOUR_DEVICE_ID with your device's UDID, and keep both WDA and iproxy running (iOS Simulators do not require iproxy). When connecting multiple devices or using custom ports, forward each device to a distinct local port and enter that port in Playground's connection panel.

    Verify WebDriverAgent status

    Once WDA is running, open its /status endpoint in your browser or terminal to verify that the service is ready:

    • URL: http://localhost:8100/status
    • Expected JSON response:
    {
      "value": {
        "build": {
          "version": "10.1.1",
          "time": "Sep 24 2025 18:56:41",
          "productBundleIdentifier": "com.facebook.WebDriverAgentRunner"
        },
        "os": {
          "testmanagerdVersion": 65535,
          "name": "iOS",
          "sdkVersion": "26.0",
          "version": "26.0"
        },
        "device": "iphone",
        "ios": {
          "ip": "10.91.115.63"
        },
        "message": "WebDriverAgent is ready to accept commands",
        "state": "success",
        "ready": true
      },
      "sessionId": "BCAD9603-F714-447C-A9E6-07D58267966B"
    }

    Receiving a JSON response like the one above (with "ready": true) confirms that WebDriverAgent is properly configured and ready to accept commands.