当前位置: 首页 > 知识库问答 >
问题:

如何使用无头浏览器运行测试?

祁嘉言
2023-03-14

使用:

ng 测试

Angular CLI在Chrome中默认运行测试,这很好,但是如果我需要在仅控制台环境(无头浏览器)中运行它们呢?

如果我可以在每次运行它时指定是否想要无浏览器,那就太好了,所以类似于:

ng test --browsers MyHeadLessBrowser

编辑:

运行PhantomJS我得到了以下信息:

PhantomJS 2.1.1 (Linux 0.0.0)错误类型错误:useValue,useFactory,数据不可迭代!http://localhost:9876/_ karma _ web pack _/poly fills . bundle . js:854

ReferenceError:在中找不到变量:Intlhttp://localhost:9876/_karma_webpack_/vendor.bundle.js(第49362行)intlDateFormat@http//localhost:9876/_karma_webpack_/vendor.bundle.js:49362:20

共有3个答案

钮巴英
2023-03-14

Angular提供了我们在没有浏览器的情况下运行测试所需的所有东西。

打开karma.conf.js文件并将ChromeHeadless添加到浏览器数组-

browsers: ['ChromeHeadless'],

测试快乐!

庄元龙
2023-03-14

这应该可以达到目的:

npm i --save-dev karma-phantomjs-launcher

然后修改karma.conf.js文件的插件属性,将PhantomJS插件添加到列表中。还将PhantomJS添加到浏览器属性。

plugins: [
    require( 'karma-jasmine' ),
    require( 'karma-chrome-launcher' ),
    require( 'karma-phantomjs-launcher' ),
    require( 'karma-remap-istanbul' ),
    require( 'angular-cli/plugins/karma' )
],
...
browsers: [ 'PhantomJS', 'Chrome' ],

由于您想要完全无头的体验,您可以从浏览器属性中删除Chrome,也可以从插件数组中删除karma-chrome-Launcher。

汪耀
2023-03-14

作为基于威廉·汉普郡的更完整的答案,库加的评论和我个人的补充。

您可以使用无头Chrome:

ng 测试 --浏览器 ChromeHeadless

你需要使用Chrome 59。

但是,如果您需要PhantomJS(和/或更改默认的<code>ng测试

编辑:请注意,PhantomJS项目已存档,请参阅此线程。

为了能够(可选地)在没有浏览器的情况下使用PhantomJS运行测试,您应该:

npm install --save-dev karma-phantomjs-launcher
npm install --save intl

打开< code>karma.conf.js并将< code > require(' karma-phantom js-launcher ')添加到< code>plugins数组中,例如:

module.exports = function (config) {
  config.set({
    basePath: '',
    frameworks: ['jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-phantomjs-launcher'),
      // ...
    ],

打开< code>src/polyfills.ts文件,取消对以下行的注释:

浏览器聚合填充

import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

应用程序导入

import 'intl';
import 'intl/locale-data/jsonp/en';

不可以。您可以使用< code > Chrome (angular-CLI默认值)运行测试:

<code>ng测试——Chrome浏览器

或PhantomJS(无头):

<code>ng测试——PhantomJS浏览器

通过更改karma.conf.js中的浏览器数组的值,可以更改ng test的默认行为(因此,当未提供--浏览器参数时)。

现在可以将其设置为仅使用<code>Chrome</code>(默认angular cli设置):

浏览器: ['铬'],

或者< code>PhantomJS:

浏览器: ['PhantomJS'],

或者两者都有:

浏览器:['Chrome','PhantomJS'],

 类似资料:
  • 问题内容: 我正在将Selenium WebDriver与Java和TestNG框架一起使用。我想一次在一个代码中使用Firefox,IE,Chrome来进行跨浏览器测试。我只能将Firefox初始化为 但无法以相同方式初始化其他浏览器。例如: 给出错误 给出错误 如何初始化IE和Chrome并在所有所需的浏览器中执行测试? 问题答案: 对于C# 加 创建一个包含浏览器名称的配置文件。实现与配置文

  • 请详细步骤,尝试同时使用HTML单元驱动程序配置和幻影Js配置,但没有运气 如何在jeter中为WebDriver Samplers运行无头浏览器,请提供详细步骤,尝试使用HTMLUnit驱动程序配置和PhantomJs配置,但运气不好。我的要求是我需要将selenium脚本转换为jeter脚本,我已经在jeter中创建了Webdrive脚本,我需要在100个用户中运行它,因为我不想启动100个浏

  • 我有一些使用JUnit和Selenium的测试,我需要在Chrome浏览器上运行它。我下载了Chrome驱动程序,并将我的SetUp()配置为: ChromeDriver.exe添加在我的引用库文件夹中。 当我运行测试时,会显示以下错误:java.lang.exception:没有可运行的方法 有人知道我该怎么解决吗? 解决方案 2更新您的setProperty为:第二个参数必须是您的C在哪里hr

  • 问题内容: 我花了一天的时间研究可用于完成以下任务的图书馆: 检索网页的全部内容(例如在后台),而不向视图渲染结果。 例如,lib应该支持触发ajax请求的页面,以便在加载初始HTML之后加载一些其他结果数据。 从生成的html中,我需要获取xpath或CSS选择器形式的元素。 将来我可能还需要导航到下一页(触发事件,提交按钮/链接等) 这是我尝试未成功的尝试: Jsoup:效果很好,但不支持ja

  • 我试图在浏览器堆栈上运行多个浏览器上的E2E测试,我参考了在量角器中的多个/并行浏览器上的E2E测试?和Internet Explorer Selenium量角器e2e测试 但每次我试着运行测试时都会犯错- 谁能告诉我什么是我做错了这里,而且我们使用gulp ti运行规范,但我的问题是它是说,甚至没有超出认证。

  • 我想将JSTestDriver与jenkins-CI集成。问题是生成服务器没有显示。有没有办法无头运行浏览器? 谢谢