node.js - Jasmine 不与 puppeteer 师合作

标签 node.js jasmine puppeteer

我正在尝试使用 puppeteer 在 jasmine 中运行一个简单的测试,但是当我在测试脚本中使用它时,我无法让 puppeteer 工作:

const puppeteer = require('puppeteer');

describe("Jasmine puppeteer", function() {

  let browser;
  let page;

  beforeAll(() => {
    browser = await puppeteer.launch({headless: false});
    page = await browser.newPage();
    await page.goto('chrome://newtab');
    await page.screenshot({path: 'a.png'});
  })

  it("jasmine puppeteer", () => {
    expect(await page.title()).toBe("");
    done();
  });

  afterAll(() => {
  })
});

运行此脚本时我得到:

$ npm test spec/testspec.js

> test@0.0.1 test D:\sample
> jasmine "spec/testspec.js"

D:\sample\spec\testspec.js:10
    browser = await puppeteer.launch({headless: false});
                    ^^^^^^^^^

SyntaxError: Unexpected identifier
    at createScript (vm.js:80:10)
    at Object.runInThisContext (vm.js:139:10)
    at Module._compile (module.js:607:28)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at D:\sample\node_modules\jasmine\lib\jasmine.js:93:5
npm ERR! Test failed.  See above for more details.

npm test 只是指向 jasmine。如果我评论 puppeteer 相关代码,测试工作正常。

最佳答案

await 仅适用于异步函数

beforeAll((done) => {
    let screenshot = async function() {
        browser = await puppeteer.launch({ headless: false });
        page = await browser.newPage();
        await page.goto('chrome://newtab');
        await page.screenshot({ path: 'a.png' });
    }
    screenshot().then(done)
})

关于node.js - Jasmine 不与 puppeteer 师合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48497986/

相关文章:

node.js - 为什么docker镜像太大? NodeJS 应用程序

javascript - puppeteer 如何等待所有重定向

javascript - 如何从 Code Coverage Istanbul Reporter 中排除模拟文件

javascript - 单击筛选结果的按钮时,Puppeteer 超时超过 3000 毫秒

puppeteer - 无法在 headless 浏览器中加入 lib-jitsi-meet 创建的 session

mysql - 使用nodejs将excel表上传到MySQL时如何忽略第一行?

macos - 尝试杀死所有 Node 但在 osx 上失败

angularjs - 将 Jasmine 与 AngularJS 一起使用时出错

angularjs - Jasmine - TypeError : Cannot read property 'spyOn' of null

javascript - 忽略 Puppeteer arg "--remote-debugging-port=0"