This is a revival of SerenityOS/serenity#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 FramePOST /session/{session id}/frame/parent
Switch To Parent FramePOST /session/{session id}/element/{element id}/clear
Element ClearPOST /session/{session id}/element/{element id}/value
Element Send KeysPOST /session/{session id}/actions
Perform ActionsDELETE /session/{session id}/actions
Release ActionsAdditionally, some endpoints are partially implemented with FIXMEs in Userland/Services/WebContent/WebDriverConnection.cpp
which need resolving before WebDriver will work completely.
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too