badkins
2022-1-11 16:18:15

While looking into the possibility of using the <https://www.selenium.dev/documentation/webdriver/|Selenium WebDriver> in Racket, I came across @popa.bogdanp’s <https://github.com/Bogdanp/marionette|marionette package> - I’m curious about the pros/cons of Marionette vs. WebDriver. It seems like the Selenium WebDriver is more general, in that it can control a variety of browsers.


badkins
2022-1-11 16:19:36

<https://www.browserstack.com/guide/geckodriver-vs-marionette|This article> states, “Marionette is similar to Selenium as it uses a lot of the same structure and API as the latter. ”


badkins
2022-1-11 16:32:49

I see that if Selenium were to drive Firefox, it would do so via the gecko driver which accepts webdriver commands and translates them to marionette commands. So I’m wondering why be specific to Firefox w/ marionette vs. implementing the webdriver protocol which could then be used for Firefox, Chrome, Safari, Edge, etc.


popa.bogdanp
2022-1-12 07:47:20

It’s been long enough since I wrote marionette that I’ve forgotten most of the details. I think Firefox exposes more functionality via Marionette than WebDriver provides and the protocol allows for async commands, which I don’t think WebDriver does. I could be totally wrong, though