Page Objects (POs) promote a clean separation between the code used to access a specific Web page and the actual test code. In this way their adoption reduces test code duplication and improves code maintainability.
In this keynote, after explaining what page objects are, their benefits and how they are used in the context of automated Web testing, we will retrace our more than ten-year research on this design pattern. At the beginning of the presentation, with some code examples, we will show some best practices to use when developing PO-based Selenium WebDriver test suites. Next, we will present some empirical studies that we have conducted to prove POs effectiveness, and then we will describe some tools we have created to automatically generate the page objects (i.e., APOGEN and ASSESSOR).