facebook-wda
Python Client for Facebook WebDriverAgent
What it is and what it does
facebook-wda is a Python client for Facebook's WebDriverAgent, a tool that exposes iOS device UI automation through an HTTP API. It lets you programmatically control iOS apps, take screenshots, simulate touches, swipes, and other gestures, and query app state—useful for automated testing of iOS applications. The package wraps WebDriverAgent's REST API, so it requires a separate WebDriverAgent server running on your iOS device or simulator; the client communicates with that server over HTTP (or USB via usbmuxd). It depends on six, Pillow for image handling, retry for resilience, and a few utility libraries.
The library is actively maintained but the underlying Facebook WebDriverAgent project is archived; the maintainers recommend using the Appium fork instead for new projects. Install friction is low, and there are no known security vulnerabilities. The package is suitable for teams building iOS test automation, though you'll need to set up WebDriverAgent separately and understand that screenshot dimensions differ from window size due to UIKit scaling.
Use it for:
- Automated UI testing of iOS apps in CI/CD pipelines, simulating user interactions and verifying app behavior.
- Mobile app testing on physical devices or simulators by controlling app launch, navigation, and state verification.
- Screenshot capture and comparison testing to detect visual regressions in iOS app interfaces.
- Clipboard and system interaction testing (lock/unlock, home button, Siri activation) for complex app workflows.
- Multi-device test orchestration where you control multiple iOS devices from a single Python test suite.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client library for controlling iOS devices via Facebook's WebDriverAgent, enabling automated UI testing and interaction with iOS apps through a network API.
Yes, with conditions. The package is actively maintained, has low install friction, and fills a real need for iOS test automation. However, install it only if you already have WebDriverAgent running on your target iOS device or simulator—the package is a client library, not a standalone tool. Also note that Facebook's original WebDriverAgent is archived; consider whether the Appium fork better suits your long-term needs. No security vulnerabilities are known.
Install
facebook-wda on PyPI
pip
pip install facebook-wdauv
uv add facebook-wdapoetry
poetry add facebook-wdaInstalling facebook-wda
Before you install
Low install friction with six runtime dependencies. Actively maintained as of 2025-09-03 with recent commits; however, the package targets an archived Facebook project and recommends using the Appium fork instead.
License in practice
MIT license permits commercial and private use with minimal restrictions; you must include the license notice in distributions.
Quickstart
pip install facebook-wda
import wda
c = wda.Client('http://localhost:8100')
print(c.status())
c.screenshot('screen.png')
Requires WebDriverAgent server running on an iOS device or simulator (started separately via xcodebuild or tidevice); not a standalone testing tool.
Verify before relying
- Current compatibility with modern Python versions (classifiers list Python 2.7 and 3.2–3.5, but latest release is 2025-09-03).
- Whether the package works with the recommended Appium WebDriverAgent fork or only the archived Facebook version.
- Stability of USB connection mode (marked experimental, added in 0.9.0).
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — six, retry, Pillow, cached-property, Deprecated, construct |
| Maintenance | actively maintained — 345 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 150,847/month — #10,952 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: facebook_wda-1.5.4-py3-none-any.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
fb-idbA command-line and Python client for automating…
permissive · top 15,000 on PyPI
uiautomator2Automates Android device interactions from…
permissive · top 15,000 on PyPI
Appium-Python-ClientExtends Selenium Python bindings with…
permissive · top 5,000 on PyPI
robotframework-appiumlibraryAppiumLibrary is a Robot Framework library that…
permissive · top 15,000 on PyPI
uiautomatorPython wrapper for Android's uiautomator…
permissive · top 15,000 on PyPI
uiautomationAutomates Windows UI controls and windows by…
permissive · top 15,000 on PyPI
eyes-seleniumVisual testing SDK for Selenium and Appium…
unclear · top 15,000 on PyPI
Selenium-ScreenshotCaptures full-page or element-level screenshots…
permissive · top 15,000 on PyPI
selenium-page-factoryImplements a page factory pattern for Selenium…
permissive · top 15,000 on PyPI
lambdatest-selenium-driverCaptures visual snapshots during Selenium tests…
permissive · top 15,000 on PyPI