PageAdapter pattern for Python Selenium browser test abstraction