import { Browser , WaitCondition } from './' ; export interface NewablePage < T extends Page > { new ( browser ) : T ; } export abstract class Page { private url : string ; protected setUrl ( url ) { this . url = url ; } public async navigate ( ) { await this . browser . navigate ( this . url ) ; await this . browser . wait ( this . loadCondition ( ) ) ; } public abstract loadCondition ( ) ; public constructor ( protected browser ) { } }