首页 > 解决方案 > Jest puppeteer typescript reference error 找不到页面

问题描述

试图用 puppeteer 设置 typescript jest

我按照如下所述的分步说明进行操作

带有 typescript 配置的 Jest-puppeteer

有一个简单的测试

describe('Google', () => {
 
    beforeAll(async () => {
        await page.goto('https://google.com')
    })
 
    it('should display "google" text on page', async () => {
        await expect(page).toMatch('google')
    })
 
})

当我运行我的测试时,我得到了奇怪的错误

ReferenceError: page is not defined

它指向 beforeAll 中的“等待页面”对象

我还注意到 chrome 尝试启动但未启动可能是此错误是 b/c chrome 无法启动。

jest-puppeteer 库负责启动浏览器并提供浏览器和页面对象

这是从上述链接中提到的页面获取的代码

//jest-puppeteer.config.js

let jest_puppeteer_conf = {
    launch: {
        timeout: 30000,
        dumpio: true // Whether to pipe the browser process stdout and stderr 
    }
}
 
const isDebugMode = typeof v8debug === 'object' || /--debug|--inspect/.test(process.execArgv.join(' '));
 
if (isDebugMode) {
    jest_puppeteer_conf.launch.headless = false; // for debug:  to see what the browser is displaying
    jest_puppeteer_conf.launch.slowMo = 250;  // slow down by 250ms for each step
    jest_puppeteer_conf.launch.devtools = true; // This lets you debug code in the application code browser
    jest_puppeteer_conf.launch.args = [ '--start-maximized' ]; // maximise the screen
}
 
module.exports = jest_puppeteer_conf;

底部有一个小的调试部分,提醒添加以下类型,我已经拥有它们但仍然没有运气,感谢任何帮助。

"compilerOptions": {
       .....
        "types": [
         .......
          "puppeteer",
          "jest-environment-puppeteer",
          "expect-puppeteer"
        ]
      }

标签: jestjspuppeteerts-jestjest-puppeteer

解决方案


注释掉以下行可以解决问题。

// testEnvironment: "node"

推荐阅读