Restart browser on target closed

main
Elbert Alias 4 years ago
parent e29b3ab351
commit 8bf7c3b7b8

@ -476,12 +476,23 @@ class Site {
if (!this.browser) { if (!this.browser) {
await this.initDriver() await this.initDriver()
if (!this.browser) { if (!this.browser) {
throw new Error('Browser closed') throw new Error('Browser closed')
} }
} }
const page = await this.browser.newPage() let page
try {
page = await this.browser.newPage()
} catch (error) {
this.error(error)
await this.initDriver()
page = await this.browser.newPage()
}
this.pages.push(page) this.pages.push(page)
@ -632,13 +643,19 @@ class Site {
// page.on('console', (message) => this.log(message.text())) // page.on('console', (message) => this.log(message.text()))
// Cookies // Cookies
const cookies = (await page.cookies()).reduce( let cookies = []
(cookies, { name, value }) => ({
...cookies, try {
[name.toLowerCase()]: [value], cookies = (await page.cookies()).reduce(
}), (cookies, { name, value }) => ({
{} ...cookies,
) [name.toLowerCase()]: [value],
}),
{}
)
} catch (error) {
this.error(error)
}
// HTML // HTML
let html = await this.promiseTimeout(page.content(), '', 'Timeout (html)') let html = await this.promiseTimeout(page.content(), '', 'Timeout (html)')
@ -707,7 +724,7 @@ class Site {
page.evaluateHandle( page.evaluateHandle(
() => () =>
// eslint-disable-next-line unicorn/prefer-text-content // eslint-disable-next-line unicorn/prefer-text-content
document.body.innerText // .replace(/\s+/g, ' ').slice(0, 25000) document.body && document.body.innerText
), ),
{ jsonValue: () => '' }, { jsonValue: () => '' },
'Timeout (text)' 'Timeout (text)'