[Yujun] Refactored AbstractPage to take a Browser interface rather than enum to allow extension.