Tests refactored to use the page object pattern (much easier to understand and maintain).