angular - 如何在 Angular 应用程序中使用 Puppeteer

标签 angular typescript protractor puppeteer e2e-testing

我的问题很简单,但我不明白这是否可能,在这种情况下,如何可能。

我想使用 puppeteer Angular 应用程序中的库使用 npm package ,但我不明白如何使用它。

例如我只想制作这个脚本:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

在 Angular 组件中,有人可以帮助我吗(它可以让我理解很多东西)。

提前致谢,抱歉我的英语不好,我是法国人。

最佳答案

如何使用 Puppeteer 进行 Angular 端到端测试

1) 安装Puppeteer

npm install --save-dev puppeteer @types/puppeteer

2) 配置 Protractor 以使用 Puppeteer

编辑您的 protractor.conf.js 并在 capabilities 中添加以下内容:

// ...
const puppeteer = require('puppeteer');

exports.config = {
  // ...
  capabilities: {
    browserName: 'chrome',
    chromeOptions: {
      args: ['--headless'],
      binary: puppeteer.executablePath(),
    },
  },
  // ...
};

3) 编写并执行你的测试

例如,编辑您的 e2e/src/app.e2e-spec.ts 并执行以下操作:

import * as puppeteer from 'puppeteer';

describe('workspace-project App', () => {
  it('Test Puppeteer screenshot', async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('http://localhost:4200');
    await page.screenshot({ path: 'example.png' });

    await browser.close();
  });
});

使用 ng e2e 运行您的 e2e 测试。上面的示例将生成您的应用程序主页的屏幕截图并将其保存为 example.png


检查 official Puppeteer website有关如何编写测试的更多信息。

关于angular - 如何在 Angular 应用程序中使用 Puppeteer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51536244/

相关文章:

javascript - 将 url 参数传递给 angular 2 中的 http get 请求

javascript - 修改 Angular2 服务层的对象 : Subscription is not assignable to the type observable

javascript - 用于外部点击的 @HostListener OnClick 在 Firefox 中不起作用

javascript - 如何使用 typescript 获取 addEventListener 中的下一个同级

typescript - VS Code 是否安装 TypeScript,如果是 : where?

javascript - Angular 2 - 表格 : Get div element value

angular - 将 Observable 映射到对象数组

javascript - Protractor :使用 Promise

css - Protractor - 元素不可见(但手动检查时可见)

Protractor 和 cucumber 。 this.visit 不是一个函数