Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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
角度/Jquery选择器在运行量角器时导致错误_Jquery_Angularjs_Highcharts_Protractor_Karma Runner - Fatal编程技术网

角度/Jquery选择器在运行量角器时导致错误

角度/Jquery选择器在运行量角器时导致错误,jquery,angularjs,highcharts,protractor,karma-runner,Jquery,Angularjs,Highcharts,Protractor,Karma Runner,我在角度项目上运行Karma+量角器时出错。 我尝试了几种不同的方法来选择元素,它们都会导致错误 我正在寻找一种方法,使其工作/在运行测试时忽略此功能。 这是未通过测试的线路: var chart = angular.element(document.querySelector("#chart2")).highcharts(); 这一行的结果是: TypeError:“未定义”不是函数(正在计算 'angular.element(document.querySelector(“#chart2”

我在角度项目上运行Karma+量角器时出错。 我尝试了几种不同的方法来选择元素,它们都会导致错误

我正在寻找一种方法,使其工作/在运行测试时忽略此功能。

这是未通过测试的线路:

var chart = angular.element(document.querySelector("#chart2")).highcharts();
这一行的结果是:

TypeError:“未定义”不是函数(正在计算 'angular.element(document.querySelector(“#chart2”)).highcharts()

我尝试了几种不同的方法:

我将行更改为:

var chart = $("#chart2").highcharts();
并得到以下错误:

ReferenceError:找不到变量:$

我还尝试将此行更改为:

var chart = angular.element("#chart2").highcharts();
然后我得到了以下错误:

错误:[jqLite:nosel]无法通过选择器查找元素 由jqLite支持!见:

重要的是,所有3个选项都适用于角度

我正在寻找一种方法,使其工作/在运行测试时忽略此功能。


有没有可行的想法?

如果您有jQuery可用,这些选项可能会起作用。看起来您的测试正在使用angular内置jqLite,而这些功能不可用

Angular可以使用jQuery,如果它在应用程序引导时出现在应用程序中。如果您的脚本路径中没有jQuery,Angular将返回到它自己的jQuery子集实现,我们称之为jQLite

也许可以尝试将jQuery添加到您的karma配置中?在angular之前加载jQuery应该可以工作

e、 g.在你的业力配置中:

files: [
'libs/jquery.js',
'libs/angular.js'
]

你可能会从附近的某个地方获得动力

expect(element(by.xpath('//highcharts')).isPresent()).toBe(true);

在您的测试过程中,似乎没有加载jquery。@i抱歉,您知道我应该更改或添加什么来加载它吗?我需要将这些文件添加到量角器,而不是karma,您知道如何将jquery/angular添加到karma吗?