drashland / sinco

Browser Automation and Testing Tool for Deno, written in full TypeScript
https://drash.land/sinco
MIT License
57 stars 3 forks source link

feat: support webdriver-bidi protocol #135

Open sigmaSd opened 2 years ago

sigmaSd commented 2 years ago

Summary

What:

Support webdriver-bidi protocol https://github.com/w3c/webdriver-bidi https://developer.chrome.com/blog/webdriver-bidi/

Why:

Its seems to be the future of browser automation, firefox enables it by default since version 101 https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/101#webdriver_conformance_webdriver_bidi_marionette, you can test it with selenium https://www.selenium.dev/documentation/webdriver/bidirectional/

Acceptance Criteria

Below is a list of tasks that must be completed before this issue can be closed.

ebebbington commented 3 months ago

@sigmaSd would you happen to have an more info on this? As to how we may send messages using the new protocol methods

For issue reference, the selenium bidi webdriver calls .bidi.send internally when their external api methods are called (eg `.navigate), its initialisation can be found here, that takes us to where it creates the instance

So long story short, they're still using websockets normall, when you call navigate(), they still send a websocket message: https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/node/selenium-webdriver/bidi/index.js#L95

It's just how we get it to recognise the method exists? For example chrome supports it, so i ran chrome headless, and got my protocol to send the method mentioned here which is their external API, but i got a message saying the method wasn't found

sigmaSd commented 3 months ago

Sorry I forgot what this is about, I would have to read up again on the subject. Maybe this issue is not relevant anymore feel free to close it in that case.