Selenium is a tool for automating web application testing. It supports recording tests in Selenium IDE and playing them back, and also allows tests to be written in programming languages and executed via Selenium Remote Control. Tests can run across different browsers and machines in parallel using Selenium Grid. The key components of Selenium are IDE, Remote Control, Grid, and the underlying Selenium Core libraries.