Selenium is a framework to automate functional ( UI ) testing of web application. Selenium is maintained by openqa.org, and I also maintain a separate branch at http://code.google.com/p/selenium-fasttrack/
Selenium has several components:
Selenium Core is the base component which consist of the execution loop, a library of commands, and can be extended by adding userExtensions=… parameter. Selenium Core is implemented in JavaScript.
Selenium RC is a Java-based server. It has a nice hook for launching browsers, terminating browsers. It listens on a TCP socket. There are client libraries for PHP, Perl, Java, etc. More on Selenium RC
Selenium IDE is plugin for Firefox. At of November 8th 2008, it is primarily a test recorder. It allows user to interactively record the test, and play back. Selenium IDE is still fairly limited, but it seems that more features are being added. I hope that some day it will integrate with source control so that test script and test data can all be seamlessly checked into source control, and therefore better support for sharing between testers. Selenium IDE also has a TestRunner mode, and it is the primary mode that we used. Being a plugin to Firefox, it allows us to overcome security restrictions. We can have multiple window opened each fetch page from different domain. We can start testing one domain, and switch to another domain. We can test iframe that load content from different domain. In our particular case, our application was tightly integrated with Salesforce.com so our script need to have both Salesforce.com window opened, and our application window opened at the same time.
Selenium HTA is for testing with Internet Explorer. It gives us ability to overcome some security restriction.
Selenium Grid is for running Selenium on a grid or a cloud of nodes (Amazon EC2)
To use javascript variable as an argument to selenium command:
javascript{seleniumApplicationURL}





