Angularjs 我可以在量角器测试中访问ng app值吗?
我将需要测试的代码简化为:Angularjs 我可以在量角器测试中访问ng app值吗?,angularjs,protractor,angularjs-e2e,e2e-testing,Angularjs,Protractor,Angularjs E2e,E2e Testing,我将需要测试的代码简化为: <html ng-app="home" ng-strict-di=""><head>.... 但它并没有返回一个我可以比较的有用的承诺或文本 appName.getText().then(function(name) { expect(name).toBe('home') }); 但量角器抱怨说: InvalidSelectorError: invalid selector: The result of the xp
<html ng-app="home" ng-strict-di=""><head>....
但它并没有返回一个我可以比较的有用的承诺或文本
appName.getText().then(function(name) {
expect(name).toBe('home')
});
但量角器抱怨说:
InvalidSelectorError: invalid selector: The result of the xpath expression "/html/@ng-app" is: [object Attr]. It should be an element.
所以我有点困惑,我如何从量角器访问我的angular应用程序名称,以测试独立于标签本地化运行的应用程序
对这个谜团有什么洞察吗?而且似乎很神奇,当你整理你的思想来阐述这个问题时,答案就出现了 诀窍是将html作为元素
var appNameHtml = element(by.xpath('/html'))
然后,在测试中,获取ng app属性并使用它:
appNameHtml.getAttribute('ng-app').then(function(value) {
expect(value).toBe('home');
});
宾果游戏,你可以提取应用程序名
也许这是一个非常基本的问题,但它让我发疯:)而且似乎不可思议的是,当你命令你的思想去阐述这个问题时,答案就出现了 诀窍是将html作为元素
var appNameHtml = element(by.xpath('/html'))
然后,在测试中,获取ng app属性并使用它:
appNameHtml.getAttribute('ng-app').then(function(value) {
expect(value).toBe('home');
});
宾果游戏,你可以提取应用程序名
也许这是一个非常基本的问题,但它让我发疯:)我想在这种情况下,你的回答就足够了。但我只是想强调一种更通用的方法,以防
ngapp
可能不仅仅驻留在html
元素上
var-elementWithNgApp=element(by.css('*[ng-app]'))
然后又想补充一件事。您无需解析getAttribute
的承诺,即可对其值进行expect<代码>茉莉花为您解析承诺。你可以吃这样的东西
expect(elementWithNgApp.getAttribute('ng-app')).toBe('home')代码>我想在这种情况下,你的答案就足够了。但我只是想强调一种更通用的方法,以防ngapp
可能不仅仅驻留在html
元素上
var-elementWithNgApp=element(by.css('*[ng-app]'))
然后又想补充一件事。您无需解析getAttribute
的承诺,即可对其值进行expect<代码>茉莉花
为您解析承诺。你可以吃这样的东西
expect(elementWithNgApp.getAttribute('ng-app')).toBe('home')代码>谢谢,您的回答让您更好地理解了如何处理承诺。:)很高兴这有帮助!!谢谢你,你的回答让我更好地理解了如何处理承诺。:)很高兴这有帮助!!