2017-01-28 5 views
1

ich den Code vereinfacht i dies testen müssen:Kann ich in einem Winkelmesser-Test auf den ng-app-Wert zugreifen?

<html ng-app="home" ng-strict-di=""><head>.... 

Und ich einige Winkelmesser Tests laufen lasse, ich möchte den Wert von ng-App zuzugreifen, so kann ich vergleichen und sehen, welche App in jeder läuft Seite.

Ich habe versucht,

var appName = element(by.xpath('/html/@ng-app')) 

aber es ist nicht ein brauchbares Versprechen oder Text Rückkehr i mit

appName.getText().then(function(name) { 
     expect(name).toBe('home') 
     }); 

Aber Winkelmesser vergleichen klagt:

InvalidSelectorError: invalid selector: The result of the xpath expression "/html/@ng-app" is: [object Attr]. It should be an element. 

Also ich bin ein wenig verwirrt wie wie kann ich auf meine eckige App Name von Winkelmesser zugreifen, um für app unabhängig von localizat zu laufen Ionen von Etiketten.

Jeder Einblick in dieses Rätsel?

Antwort

2

Und es mag magisch erscheinen, wenn Sie Ihre Gedanken ordnen, um die Frage zu formulieren, die Antwort zu Ihnen kommt.

der Trick ist, die HTML als Element

var appNameHtml = element(by.xpath('/html')) 

und dann im Test zu bekommen, erhält das ng-App-Attribut und es verwenden:

appNameHtml.getAttribute('ng-app').then(function(value) { 
    expect(value).toBe('home'); 
}); 

Und Bingo, können Sie extrahieren der Name der App

Vielleicht ist dies eine sehr einfache Frage, aber es machte mich verrückt :)

2

Ihre Antwort genügt ich in diesem Fall erraten. Aber wollte nur einen generischen Ansatz hervorheben, falls ng-app nicht nur auf html Element liegen sollte.

var elementWithNgApp = element(by.css('*[ng-app]'))

Und dann wollte noch etwas hinzuzufügen. Sie müssen das Versprechen von getAttribute nicht lösen, um einen Wert zu erwarten. Jasmine löst das Versprechen für Sie. Sie können so etwas wie diese

expect(elementWithNgApp.getAttribute('ng-app')).toBe('home');

+0

Vielen Dank, Ihre Antwort haben gab ein besseres Verständnis davon, wie Versprechungen zu behandeln. :) – shadowcharly

+0

Froh, dass es geholfen hat !! – AdityaReddy

Verwandte Themen