我总是在这个结构中得到未定义的页面。似乎mocha的钩子都没有运行。我尝试将async
添加到顶级描述中,我尝试添加完成语句。我甚至尝试使用Promise.then.catch
。一切都没有运气。
const should = require('chai').should()
const puppeteer = require('puppeteer')
const puppeteerConfig = {
headless: true,
args: ['--no-sandbox', '--disable-translate', '--disable-extensions', '--disable-sync']
}
var browser
var page
describe('...', function() {
before(async function() {
browser = await puppeteer.launch(puppeteerConfig)
})
after(async function() {
await browser.close()
})
beforeEach(async function() {
page = await browser.newPage()
})
afterEach(async function() {
await page.close()
})
describe('...', async function() {
before(async function() {
console.log(page) // undefined
}
})
})
答案 0 :(得分:0)
感谢@Akshendra Pratap,这个要点表明了为什么之前失败了。我所做的是创建一个顶级功能:
async function genHTML(page) {
return await page.$(...)
}
然后在第一个描述的beforeEach()
中调用它。这解决了它,非常奇怪的设计,摩卡会在之前调用上部然后降低,然后在每个之前调用上部...