我的问题很简单,但我不知道是否可能,在这种情况下怎么可能? 我想在有角度的应用程序中使用puppeteer库。 https://www.npmjs.com/package/puppeteer是npm安装。 但是我不明白如何使用它。 例如,我只想制作此脚本:
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();
})();
在一个角度组件中,有人可以帮助我(它将使我能够理解很多事情)
在此先感谢您,我英语不好,我是法语
答案 0 :(得分:6)
npm install --save-dev puppeteer @types/puppeteer
编辑您的protractor.conf.js
并在capabilities
内添加以下内容:
// ...
const puppeteer = require('puppeteer');
exports.config = {
// ...
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--headless'],
binary: puppeteer.executablePath(),
},
},
// ...
};
例如,编辑您的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,以获取有关如何编写测试的更多信息。
答案 1 :(得分:0)
您可以将Puppeteer用作Angular Universal的现代智能替代品,以进行服务器端渲染和预渲染。为此,使用Puppeteer时,与Angular Universal不同,您不需要修改项目源代码。使用Puppeteer似乎比Universal更容易。
参考:
Headless Chrome: an answer to server-side rendering JS sites
Prerender an Angular application with @angular/cli and puppeteer