我正试着为我的木偶技师项目做测试。我遵循了一个基本指南,测试通过了,但是终端中有两个控制台错误。
使用 或 时不会出现错误。所以看起来这可能是特定网站的问题吗?
console.error
Unhandled error
at process.uncaught (node_modules/jest-jasmine2/build/jasmine/Env.js:248:21)
at handler (node_modules/jest-environment-puppeteer/lib/PuppeteerEnvironment.js:17:11)
at map (node_modules/mitt/src/index.ts:74:75)
at Array.map (<anonymous>)
at Object.emit (node_modules/mitt/src/index.ts:74:56)
at Page.emit (node_modules/puppeteer/lib/EventEmitter.js:72:22)
console.error
at process.uncaught (node_modules/jest-jasmine2/build/jasmine/Env.js:249:21)
at handler (node_modules/jest-environment-puppeteer/lib/PuppeteerEnvironment.js:17:11)
at map (node_modules/mitt/src/index.ts:74:75)
at Array.map (<anonymous>)
at Object.emit (node_modules/mitt/src/index.ts:74:56)
at Page.emit (node_modules/puppeteer/lib/EventEmitter.js:72:22)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 5.613 s
Ran all test suites.这是我的密码
describe('NCAA Home', () => {
beforeAll(async () => {
await page.goto('http://stats.ncaa.org/rankings/change_sport_year_div');
});
it('should be titled "NCAA Statistics"', async () => {
await expect(page.title()).resolves.toMatch('NCAA Statistics');
});
});这是我的jest.config.js
module.exports = {
preset: "jest-puppeteer",
testMatch: [
"**/test/**/*.test.js"
],
verbose: true
}package.json
{
"name": "stackoverflow",
"version": "1.0.0",
"description": "",
"main": "index.js",
"jest": {
"preset": "jest-puppeteer"
},
"scripts": {
"test": "jest"
},
"author": "",
"license": "ISC",
"devDependencies": {
"jest": "^26.1.0",
"jest-puppeteer": "^4.4.0"
},
"dependencies": {
"puppeteer": "^5.1.0"
}
}我遇到的所有事情都提到了异步/等待的问题,但是我尝试过的任何事情都会产生同样的错误,如果不是的话,也会产生更多的错误。我用这些文件做了一个新的项目,我也收到了同样的错误。
发布于 2020-07-14 09:05:23
错误来自网站本身。检查网站的控制台。因此,对于像google.com或youtube.com这样的网站来说,它没有任何错误。

发布于 2020-09-17 09:18:44
我创造了干净的回购来复制问题。https://github.com/sergtimosh/jest-puppeteer-issue-reproduction.git
或
解决方法是在jest-environment.js.中创建匿名浏览器上下文。只需取消该文件中的两行注释,测试就会通过,没有任何问题。但是,如果您需要在测试套件(文件)之间共享浏览器上下文,问题仍然存在。
const PuppeteerEnvironment = require('jest-environment-puppeteer');
class JestEnvironment extends PuppeteerEnvironment {
async setup() {
await super.setup()
//to fix issue uncomment next two lines
// const incognitoContext = await this.global.browser.createIncognitoBrowserContext()
// this.global.page = await incognitoContext.newPage()
}
async teardown() {
await super.teardown()
}
}
module.exports = JestEnvironment;
https://stackoverflow.com/questions/62880502
复制相似问题