Javascript 摩卡异步挂钩没有运行?
我总是在这个结构中得到未定义的页面。看起来摩卡的钩子都没动。我尝试将Javascript 摩卡异步挂钩没有运行?,javascript,node.js,async-await,mocha.js,puppeteer,Javascript,Node.js,Async Await,Mocha.js,Puppeteer,我总是在这个结构中得到未定义的页面。看起来摩卡的钩子都没动。我尝试将async添加到顶级描述,我尝试添加done语句。我甚至试过使用Promise.then.catch。都没有运气 const should = require('chai').should() const puppeteer = require('puppeteer') const puppeteerConfig = { headless: true, args: ['--no-sandbox', '--dis
async
添加到顶级描述,我尝试添加done语句。我甚至试过使用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
}
})
})
多亏了@Akshendra Pratap,这个要点说明了之前失败的原因。我所做的是创建一个顶级函数:
async function genHTML(page) {
return await page.$(...)
}
然后在第一个descripe的
beforeach()中调用它。这就解决了这个问题,非常奇怪的设计,摩卡会先调用上层然后再调用下层,在每次调用上层之前…您正在描述中编写控制台,尝试在中写入它。我忘记了在第二个描述中,它做了一些工作,然后运行一些it
语句。遗憾的是,执行顺序是这样的,我认为您可以使用selenium js,它有一些很好的异步Mocha示例/API。