

Then ChromeDriver (powered by Chrome Automation Extension), GeckoDriver (Firefox translation to their Marionette driver), and SafariDriver is now baked into Safari 10. I believe, Microsoft was the first to implement their own driver, InternetExplorerDriver, for IE7+. Which is why the WebDriver became an open specification instead various driver implementations. At the same time, browsers started putting additional security measures around plugins making it even more difficult to have consistent features across Selenium's drivers. It wasn't until much later that browsers started implementing their own automation channels Chrome's Automation Extension and Debugging Protocol, Firefox's Marionette, etc. (End user's only care about the webpage's presentation, not which headers were present per transaction.) Although, I suspect that early restrictions influenced that viewpoint. Also, the dev's have consistently been of the opinion that they only care to simulate an end-user experience. Then Grid allowed for simultaneous testing of many remote machines.ĭue to the nature of browser plugins, they could only access information that the browser made available. Then came Selenium Server which allowed for testing on remote machines. (I don't have the full history, but from my experience.) When I first started using Selenium, it used browser-specific drivers that communicated directly with bespoke extensions/plugins/add-ons/what-have-yous.
