WebDriverAgent is a WebDriver server implementation for iOS that can be used to remote control iOS devices. It allows you to launch & kill applications, tap & scroll views or confirm view presence on a screen. This makes it a perfect tool for application end-to-end testing or general purpose device automation. It works by linking XCTest.framework
and calling Apple's API to execute commands directly on a device. WebDriverAgent is developed for end-to-end testing and is successfully adopted by Appium via XCUITest driver.
- Both iOS and tvOS platforms are supported with device & simulator
- Implements most of WebDriver Spec
- Implements part of Mobile JSON Wire Protocol Spec
- USB support for devices
- Easy development cycle as it can be launched & debugged directly via Xcode
- Unsupported yet, but works with OSX
To get the project set up just run bootstrap script:
./Scripts/bootstrap.sh
It will:
- fetch all dependencies with Carthage
After it is finished you can simply open WebDriverAgent.xcodeproj
and start WebDriverAgentRunner
test
and start sending requests.
More about how to start WebDriverAgent here.
If you are having some issues please checkout wiki first.
If you want to help us out, you are more than welcome to. However please make sure you have followed the guidelines in CONTRIBUTING.
Follow this doc
WebDriverAgent
is BSD-licensed. We also provide an additional patent grant.
WebDriverAgent depends on CocoaHTTPServer and RoutingHTTPServer.
These projects haven't been maintained in a while. That's why the source code of these projects has been integrated directly in the WebDriverAgent source tree.
You can find the source files and their licenses in the WebDriverAgentLib/Vendor
directory.
Have fun!