diff --git a/server/src/browser-management/classes/RemoteBrowser.ts b/server/src/browser-management/classes/RemoteBrowser.ts index 707bcebd..b71718f0 100644 --- a/server/src/browser-management/classes/RemoteBrowser.ts +++ b/server/src/browser-management/classes/RemoteBrowser.ts @@ -77,4 +77,17 @@ export class RemoteBrowser { this.interpreter = new WorkflowInterpreter(socket); this.generator = new WorkflowGenerator(socket); } + + /** + * An asynchronous constructor for asynchronously initialized properties. + * Must be called right after creating an instance of RemoteBrowser class. + * @param options remote browser options to be used when launching the browser + * @returns {Promise} + */ + public initialize = async(options: RemoteBrowserOptions) : Promise => { + this.browser = (await options.browser.launch(options.launchOptions)); + const context = await this.browser.newContext(); + this.currentPage = await context.newPage(); + this.client = await this.currentPage.context().newCDPSession(this.currentPage); + }; }