Selenium is an open source tool for automating web application testing. It supports many programming languages and browsers. Selenium has three main components: Selenium IDE for recording and playback of tests within Firefox, Selenium RC which launches browsers and acts as an API, and Selenium Grid for parallel testing across browsers and machines. Selenium scripts are written using Selenium commands called Selenium, which allow testing functions like navigation, input, validation and more. Tests can be run for regression testing, with features like loops, conditionals, and error handling.