Bug 135263 - Implement WebDriver in WebKit
Summary: Implement WebDriver in WebKit
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL: http://dvcs.w3.org/hg/webdriver/raw-f...
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2014-07-24 15:58 PDT by David Burns :automatedtester
Modified: 2016-08-27 23:39 PDT (History)
13 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Burns :automatedtester 2014-07-24 15:58:45 PDT
The WebDriver spec has been in development for a while and recently we have been getting new implementations. It would be great to see a webkit implementation for the following reasons:

Simpler interop testing
=======================

* Web-Platform-Tests, the test suite that implementors are contributing to, is starting to have WebDriver do some of the tests. Starting with just driving the browser to the correct state to in the future being able to do tests that are not bound by the JS sandbox like Testharness.js tests are

* Web Developers and Testers can write one test script to run against all webdriver compliant browsers. This gives developers the confidence that their website works in all browsers and all platforms.

Currently Implementations by W3C Members
========================================

ChromeDriver from Chromium. Works on Chrome for desktop and Android
IEDriver from Microsoft. Currently on in their Developers release (http://status.modern.ie/webdriver)
Marionette from Mozilla. Currently available for Firefox OS and Firefox Desktop
OperaDriver from Opera. No longer available but was used for testing Presto
BlackBerry WebDriver from Blackberry. Available for Blackberry 10+ http://devblog.blackberry.com/2014/02/selenium-support-in-blackberry-10/

Open Source Extensions of WebDriver
===================================

Since Mobile is clearly the future we are seeing extensions of WebDriver to drive the Mobile OS.

* Selendroid - Selenium for Android (Contributed to by eBay, Salesforce and Facebook and Adobe) - http://selendroid.io/
* IOS-Driver - Selenium for iOS (Contributed to by eBay, Salesforce and Google) - https://ios-driver.github.io/ios-driver/

This allows people to write a test once and be able to move them between all the different platforms and OSes.


As a side note, Opera created their implemenation and fixed a number of bugs in it so that Google would test their products with Opera. Before that Opera was neglected as a users browser and created a number of issues for the browsers users. I would hate to see a potential monoculture to appear because people only test their sites with WebDriver supported browsers
Comment 1 Timothy Hatcher 2016-03-30 19:37:22 PDT
<rdar://problem/13352830>
Comment 2 Ryosuke Niwa 2016-04-11 00:35:22 PDT
Brian, did you file another Web driver bug?  Or are we still using this as an umbrella bug?
Comment 3 Timothy Hatcher 2016-04-11 14:00:04 PDT
This is the bug we are using. There have been many subtasks that are not related to this bug, that we should relate at some point.
Comment 4 Carlos Alberto Lopez Perez 2016-06-17 11:33:05 PDT
I have just seen this via the @webkit twitter account

"in Safari 10, we are also bringing native WebDriver support to macOS." <https://twitter.com/webkit/status/743223358100111360>

What this means for WebKit?
Has this feature been implemented in another bug different than this one and I missed that?
Is there any documentation about how it works or pointers about how other ports can enable this feature?
Comment 5 Timothy Hatcher 2016-06-17 12:39:12 PDT
Some of the work has happened in WebKit, but the bulk of the WebDriver spec was implemented in Safari code due to integrations with Safari and using the macOS remote Inspector target discovery and protocol.

The WebKit code is here:

http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/Automation
http://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/Automation