#browser-automation #cross-browser-testing ## Purpose Selenium allows for automating a browser... - ... locally. - ... on a remote machine (with Selenium Server). - ... on a set of remote machines (with Selenium Server/Selenium Grid, like [[Sauce Labs]]). Testing is one use case for Selenium, but it is not limited to that. ## Docs [selenium.dev](https://selenium.dev) ## Architecture I have created some diagrams that show the [[+Selenium architecture]]. ## Selenium 4 The project is currently working on Selenium 4 which will add access to the browser via [[Chrome DevTools Protocol (CDP) in WebDriver|Chrome DevTools Protocol]]. ## Useful official resources - [Understanding the components](https://www.selenium.dev/documentation/en/webdriver/understanding_the_components/) - [API documentation for the Selenium JavaScript bindings](https://www.selenium.dev/selenium/docs/api/javascript/index.html) - [Source code of the Selenium JavaScript bindings](https://github.com/SeleniumHQ/selenium/tree/trunk/javascript/node/selenium-webdriver) ## Useful articles from third parties - [Relationships between different versions of Selenium](http://yizeng.me/2014/04/25/relationships-between-different-versions-of-selenium) (quite old, but still great) - [Selenium + Chrome Dev-tools makes a Perfect Browser Automation Recipe](https://medium.com/@sahajamit/selenium-chrome-dev-tools-makes-a-perfect-browser-automation-recipe-c35c7f6a2360)