Selenium is an open-source browser automation suite consisting of three parts: WebDriver, Server/Grid, and IDE. The IDE portion s useful for doing quick recordings of steps, but the resulting scripts are extremely fragile. This portion is also slated for deprecation with the upcoming release of Selenium 3.0. The remaining two-thirds of the suite are the most useful parts of this product.
The WebDriver API is the interface used to control browsers. Most popular browsers (Chrome, Firefox, Safari, Opera, etc.) are supported either directly or through secondary server interfaces that are available via the SeleniumHQ.org website. The ability to write tests that can be used cross-browser and cross-platform is one of the most valuable aspects of this product. In addition to being a cross-platform solution, Selenium has been ported from the original Java to multiple languages including Python, Ruby, and C#, which makes it a feasible option regardless of the language most frequently used in your organization.
Selenium Server/Grid allows for controlling a browser on a remote machine. If a grid is implemented, the tests will provide information regarding the browser and environment needed and the hub will then direct the test to an appropriate node. When the test is completed, the results are return via the hub. Establishing an in-house grid can be costly and difficult to maintain if your product requires multiple OSs and browsers. To date, my experience has been limited to working within a local grid environment, but other options, such as SauceLabs, can be used to outsource the grid while keeping the test development in-house.
One drawback of Selenium is that is does require development experience in order to create tests are not fragile and can be reused. There are many resources to teach someone how to use the API and some recommended strategies, such as the Page Object Model. The testing framework can be developed to work with Cucumber front-end to allow non-developers to create tests using Given-When-Then scenarios.
In regards to pricing, the Selenium Suite is a free automation API. This means that the cost of implementation is limited to personnel time and hardware required. This is an excellent deal when you consider that the learning curve/employee time and hardware tend to be the same regardless of the product used.
While it isn't without faults, Selenium is probably the best and most versatile web testing tool available. I highly recommend it's use over any of the products I have used in the past.
Update for 2.49.1:
The version seems to be a bit buggy. I noticed a greater sensitivity to screen resolutions and intermittent issues connecting with Firefox over Selenium Grid. I was forced to revert to 2.45.0 by these instabilities. I have seen that 2.52.0 has been released, but I have not had time to review it.