Facilitating the spread of knowledge and innovation in professional software development



Choose your language

InfoQ Homepage News Apple Adds Native W3C WebDriver Support to iOS

Apple Adds Native W3C WebDriver Support to iOS


With the release of iOS 13, Apple now includes native iOS W3C WebDriver support. Beyond previous support for WebDriver added in Safari 10, WebDriver can now easily be used for testing mobile Safari web applications efficiently.

While it was previously possible to use WebDriver with iOS Safari via the iOS simulator or various cloud-based testing providers, the native WebDriver support provides additional testing features as well as a better mobile UI testing experience.

The native WebDriver API provides safeguards against malicious code as well as flaky tests. The Safari WebDriver implementation restricts browsing in WebDriver sessions. Tests get isolated within a separate set of windows, tabs, preferences, and persistent storage, existing tabs get hidden, and a distinctively-colored WebDriver window gets shown with an orange Smart Search field. This approach helps both with security and privacy, as well as ensuring that tests do not get influenced by previous sessions. Upon test completion, any local state such as cookies get deleted.

To prevent unintended user interaction during automated test sessions, Safari adds a pane over the automation browser window, blocking any interactions. If a running test gets stuck or fails, the developer can tap on the screen and choose to end the WebDriver session. WebDriver-initiated navigations cannot be handled outside of Safari. For example, clicking an app store link will not redirect to the App Store.

To begin working with the WebDriver support on macOS devices running Safari 13 or newer versions, developers need to run safaridriver --enable and authenticate as an administrator. Then on the iOS devices for testing, developers need to enable Remote Automation (Settings → Safari → Advanced → Remote Automation). Developers then need to plug in their iOS device into the macOS host, trust the host, and unlock the iOS device when starting a WebDriver session.

The WebDriver configuration should include 'platformName': 'ios'; to differentiate between running iOS simulator or the native macOS test. To use the iOS simulator for testing, add the capability 'safari:useSimulator': true.

WebDriver for iOS is available with iOS 13 and newer versions and requires a macOS host running Safari 13 or later.

We need your feedback

How might we improve InfoQ for you

Thank you for being an InfoQ reader.

Each year, we seek feedback from our readers to help us improve InfoQ. Would you mind spending 2 minutes to share your feedback in our short survey? Your feedback will directly help us continually evolve how we support you.

Take the Survey

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.