簡體   English   中英

Angular / Jquery選擇器在運行量角器時導致錯誤

[英]Angular / Jquery selectors result an error when running Protractor

在Angular Project上運行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();

然后我得到了以下錯誤:

錯誤:[jqLit​​e:nosel] jqLit​​e不支持通過選擇器查找元素! 參見: http : //docs.angularjs.org/api/angular.element http://errors.angularjs.org/1.2.4/jqLit​​e/nosel

重要的是所有3個選項都在角度上起作用。

我正在尋找一種使其運行/在運行測試時忽略此功能的方法。

有什么想法可行嗎?

如果您有jQuery,則這些選項可能會起作用。 看起來您的測試使用的是內置角度的jqLit​​e,這些功能不可用。

引導應用程序時,如果應用程序中存在Angular,則可以使用jQuery。 如果您的腳本路徑中不存在jQuery,則Angular會退回到它自己的jQuery子集(我們稱為jQLite)的實現。 -https://docs.angularjs.org/api/ng/function/angular.element

也許嘗試將jQuery添加到您的業力配置中? 在angular之前應該先加載jQuery。

例如在您的業力配置中:

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

您可能會從附近的某處得到牽引力

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM