Are you plagued by a brittle automated test suite?
Every time you change a few lines of application code, do you find yourself having to edit dozens of lines of test code to get them passing again?
If this sounds familiar, it's probably an indication your automated test code suffers from disorganization or unnecessary duplication. Test code is often procedural in nature, but applying some OOP and "clean code" principles and patterns can go a long way in extending the life and maintainability of a test suite.
One of these is the object pattern, defined on Selenium's wiki. You create classes which represent an HTML page under test (or a part of the page, such as a navigation bar or a table). A test then instantiates a page object and interacts with it through its public methods. These methods expose the high-level services offered by a page using an intention-revealing DSL. At the s