Angular 如何在角度应用中使用木偶演员
我的问题很简单,但我不明白这是否可能,在这种情况下如何可能? 我想在角度应用程序中使用木偶演员库。 这是npm安装。 但我不明白我怎么能用它。 例如,我只想制作以下脚本:Angular 如何在角度应用中使用木偶演员,angular,typescript,protractor,puppeteer,e2e-testing,Angular,Typescript,Protractor,Puppeteer,E2e Testing,我的问题很简单,但我不明白这是否可能,在这种情况下如何可能? 我想在角度应用程序中使用木偶演员库。 这是npm安装。 但我不明白我怎么能用它。 例如,我只想制作以下脚本: const puppeter=require('puppeter'); (异步()=>{ const browser=wait puppeter.launch(); const page=wait browser.newPage(); 等待页面。转到('https://example.com'); 等待page.screen
const puppeter=require('puppeter');
(异步()=>{
const browser=wait puppeter.launch();
const page=wait browser.newPage();
等待页面。转到('https://example.com');
等待page.screenshot({path:'example.png'});
等待浏览器关闭();
})();代码>如何使用木偶演员的角度e2e测试
1) 安装
2) 配置量角器以使用木偶演员
编辑您的量角器.conf.js
,并在功能中添加以下内容:
// ...
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
有关如何编写测试的详细信息,请查看。对于服务器端渲染和预渲染,您可以使用Puppeter作为Angular Universal的现代智能替代品。与Angular Universal不同,当使用Puppeter实现此目的时,您不需要修改项目源代码。使用木偶演员似乎比普通人容易得多
参考资料:
你不能。Pupeteer需要能够浏览网页,Angualr的作用域绑定到浏览器的当前选项卡。它与chromedriver一起工作吗?我遇到了这个错误:E/launcher-会话未创建:这个版本的ChromeDriver只支持Chrome版本74
不工作,我收到了一个错误,E/launcher-会话未创建:Chrome版本必须介于71和75之间。他们建议在下载Chrome时使用Puppeter core。根据Puppeter核心版本的不同,浏览器版本之间可能存在差异。然而,Puppeter完整版保证工作,因为它根据文档@artificerpi下载chrome。您必须确保您的chrome/chrome版本与您正在使用的chromedriver/webdriver版本兼容。@Francesco如果我不想运行任何chrome/Puppeter应用程序,您如何启动Angular/Puppeter应用程序测试,只是运行一个无头浏览器?它也是ng e2e
?
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();
});
});