Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在角度应用中使用木偶演员_Angular_Typescript_Protractor_Puppeteer_E2e Testing - Fatal编程技术网

Angular 如何在角度应用中使用木偶演员

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

我的问题很简单,但我不明白这是否可能,在这种情况下如何可能? 我想在角度应用程序中使用木偶演员库。 这是npm安装。 但我不明白我怎么能用它。 例如,我只想制作以下脚本:

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();
  });
});