Open mercmobily opened 6 years ago
The specification deliberately does not define client (or local end) interfaces at all. These are left as an exercise to the reader. The specification defines the normative behaviour of remote ends, which include any intermediary node (server) that offers the HTTP API and talks to other nodes, and the endpoint node, which is user agent/driver implementation. I don’t see how we can provide a reference implementation of a driver without also writing a web browser.
FYI there is a client implementation mostly geared towards testing the specification in https://github.com/w3c/web-platform-tests/tree/master/tools/webdriver. I’m not suggesting this is a “reference implementation” of a client, but it can of course be used for inspiration.
I made the proposal mainly because my API is the only one out there which implements strictly the Webdriver protocol, as remote ends should implement it. It's also 100% documented, and we plan on having 98% test coverage.
I thought having well documented code that adheres strictly to the Webdriver protocol when talking to remote ends (whether they are a selenium proxy, or a straight webdriver) would be very beneficial.
I mean... I have to ask: are you sure you don't want it? Have you had a look at it?
It is not the purpose of this specification to impose restrictions on how clients are implemented. If it promotes or sanctions one client, then that sets a precedence for how other clients must be implemented.
I’d be happy to have a list somewhere of both remote- and local ends that are known to be conforming to the standard, however.
I could swear I had found such a list, but I cannot find it anywhere!
On 3 February 2018 at 01:56, Andreas Tolfsen notifications@github.com wrote:
It is not the purpose of this specification to impose restrictions on how clients are implemented. If it promotes or sanctions one client, then that sets a precedence for how other clients must be implemented.
I’d be happy to have a list somewhere of both remote- and local ends that are known to be conforming to the standard, however.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/w3c/webdriver/issues/1217#issuecomment-362657518, or mute the thread https://github.com/notifications/unsubscribe-auth/ACB7Xo7zE65AThJwevrvhLE6632RN46Xks5tQ0xBgaJpZM4R2h9G .
The specs are great. What I think is missing, is a reference implementation that:
I happen to have written exactly that: https://github.com/mercmobily/best-webdriver . Documentation is here too: https://mercmobily.github.io/best-webdriver/index.html
I was wondering if you (as in the W3c) would be interested in making this project as part of the w3c umbrella, or under the webdriver project/repo. I would be happy to turn over copyright for the source code, or give the W3C unlimited rights, or whatever is required. I would only ask to stay as the main maintainer, since I know the codebase well.
I think a clean, crisp, strict-to-the-specs implementation was needed -- and that's why I wrote it. I now think that more people would benefit from this work if it became W3C's. So, here I am.
Please let me know if you are interested.