AM suggested not using page objects but focusing on the goals-activities-tasks
- Goals: Buy a book
- Activities: Add the following items to the cart
- Tasks: click this, check this, open that...
Activities span multiple pages and people think about the functionality in terms of activities, not pages (from user interaction design??).
Selenium steps are in the last level (tasks). this allows you to write tests with activities on a much higher level (similar to testing DSL idea) and easily maintain them when UI changes (just change task implementation)
this also allows you to plug in a different implementation of tasks, to go below or above the UI