[英]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();
然后我得到了以下錯誤:
錯誤:[jqLite:nosel] jqLite不支持通過選擇器查找元素! 參見: http : //docs.angularjs.org/api/angular.element http://errors.angularjs.org/1.2.4/jqLite/nosel
重要的是所有3個選項都在角度上起作用。
我正在尋找一種使其運行/在運行測試時忽略此功能的方法。
有什么想法可行嗎?
如果您有jQuery,則這些選項可能會起作用。 看起來您的測試使用的是內置角度的jqLite,這些功能不可用。
引導應用程序時,如果應用程序中存在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.