WebDriver is the API for remote-controlling a browser process, as used by WebPlatformTests. It has a lot of different endpoints, so to make it clear which ones are missing, here's a handy list!
To add an endpoint you'll need to modify the code in three places:
The library definitions at Userland/Libraries/LibWeb/WebDriver.
The WebDriver side at Userland/Services/WebDriver.
The Browser side at Userland/Services/WebContent/WebDriver.
Comment here or refer to this issue in your PR to get your endpoints checked off the list. :^)
Additionally, some endpoints are partially implemented with FIXMEs in Userland/Services/WebContent/WebDriverConnection.cpp which need resolving before WebDriver will work completely.
This is a revival of https://github.com/SerenityOS/serenity/issues/15551, with the already-implemented endpoints stripped out.
WebDriver is the API for remote-controlling a browser process, as used by WebPlatformTests. It has a lot of different endpoints, so to make it clear which ones are missing, here's a handy list!
To add an endpoint you'll need to modify the code in three places:
Userland/Libraries/LibWeb/WebDriver
.Userland/Services/WebDriver
.Userland/Services/WebContent/WebDriver
.Comment here or refer to this issue in your PR to get your endpoints checked off the list. :^)
You can find the same table in the spec at https://w3c.github.io/webdriver/#endpoints
POST /session/{session id}/frame
Switch To Frame1403
POST /session/{session id}/frame/parent
Switch To Parent Frame1412
POST /session/{session id}/element/{element id}/clear
Element Clear1727
POST /session/{session id}/element/{element id}/value
Element Send Keys1725
POST /session/{session id}/actions
Perform Actions1566
1706
DELETE /session/{session id}/actions
Release Actions1566
Additionally, some endpoints are partially implemented with FIXMEs in
Userland/Services/WebContent/WebDriverConnection.cpp
which need resolving before WebDriver will work completely.