Selenium is an open source tool used to automate testing of web applications across browsers and operating systems. It includes Selenium IDE, RC, WebDriver and Grid. Selenium allows writing tests using programming languages to perform complex actions like database queries. Tests interact with browsers via client libraries and the Selenium RC server. There are actions, accessors and assertions to manipulate states and verify results. WebDriver directly interacts with browsers unlike RC. Selenium Grid distributes tests across machines for parallel execution.