MCPcopy
hub / github.com/codeceptjs/CodeceptJS / _startBrowser

Method _startBrowser

lib/helper/Puppeteer.js:628–671  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

626 }
627
628 async _startBrowser() {
629 this.debugSection('Puppeteer', `Starting browser. Puppeteer available: ${!!puppeteer}, launch available: ${!!puppeteer?.launch}`)
630
631 if (!puppeteer) {
632 throw new Error('Puppeteer is not loaded. Make sure _init() was called before _startBrowser()')
633 }
634
635 if (this.isRemoteBrowser) {
636 try {
637 this.browser = await puppeteer.connect(this.puppeteerOptions)
638 } catch (err) {
639 if (err.toString().indexOf('ECONNREFUSED')) {
640 throw new RemoteBrowserConnectionRefused(err)
641 }
642 throw err
643 }
644 } else {
645 this.browser = await puppeteer.launch(this.puppeteerOptions)
646 }
647
648 this.browser.on('targetcreated', target =>
649 target
650 .page()
651 .then(page => targetCreatedHandler.call(this, page))
652 .catch(e => {
653 console.error('Puppeteer page error', e)
654 }),
655 )
656 this.browser.on('targetchanged', target => {
657 this.debugSection('Url', target.url())
658 })
659
660 const existingPages = await this.browser.pages()
661 const mainPage = existingPages[0] || (await this.browser.newPage())
662
663 if (existingPages.length) {
664 // Run the handler as it will not be triggered if the page already exists
665 targetCreatedHandler.call(this, mainPage)
666 }
667 await this._setPage(mainPage)
668 await this.closeOtherTabs()
669
670 this.isRunning = true
671 }
672
673 async _stopBrowser() {
674 this.withinLocator = null

Callers 2

_beforeSuiteMethod · 0.95
_beforeMethod · 0.95

Calls 3

_setPageMethod · 0.95
closeOtherTabsMethod · 0.95
toStringMethod · 0.45

Tested by

no test coverage detected