Creating a Generic Advanced Page Factory
One of the problems in web testing you may encounter is having to support different pagesets of alternate flows. A common solution to that is to use interfaces and factories. But it can get cumbersome writing a whole host of custom factories to support all the different pagesets or alternate pages.
When I started my new job at carsdirect.com, one of the biggest challenge we faced was that the company did a lot of A/B testing, and almost all our pages have different pagesets that looked completely different, and many of them were designed before automation was even a consideration. We can have typically 4 versions of the same page, and it's quite common that few of the pagesets did not share any of the same ids or css selectors.