Watir (Web Application Testing in Ruby, pronounced water), is an open-source family of Ruby libraries for automating web browsers. It drives Internet Explorer, Firefox, Chrome, Opera and Safari, and is available as a RubyGems gem. Watir was first developed by Bret Pettichord and Paul Rogers.
Watir project consists of several smaller projects. The most important ones are watir-classic, watir-webdriver and watirspec.
Watir-classic makes use of the fact that Ruby has built in Object Linking and Embedding (OLE) capabilities. As such it is possible to drive Internet Explorer programmatically. Watir-classic operates from HTTP based test tools, which operates by simulating a browser. Instead of OLE protocol, which is implemented over the Object Model Component (COM) architecture. The COM interprocess communication protocol (such as between Ruby and Internet Explorer) and dynamic object creation and manipulation (which is what the Ruby program does to the Internet Explorer). Microsoft calls this OLE automation, and calls the manipulating program an automation controller. Technically, the Internet Explorer is the server and serves the automation objects, exposing their methods;
Watir-webdriver is a modern version of the Watir API based on Selenium. Selenium 2.0 (selenium-webdriver) aims to be the reference implementation of the WebDriver specification. In Ruby, Jari Bakken has implemented the Watir API as a wrapper around the Selenium 2.0 API. Not only is Watir-webdriver derived from Selenium 2.0, it is also built from the HTML specification, so Watir-webdriver should always be compatible with existing W3C specifications.
Watirspec is executable specification of the Watir API, like RubySpec is for Ruby.