2016-01-29 12 views
5

Próbuję uzyskać wyłączone attr na przycisku powinno być "wyłączone", ale wydaje się, że nie uzyskuję wartości. Nowość w kątowym i kątomierzu!Używanie kątomierza do uzyskania atrybutu wyłączonego na przycisku nie działa

Kiedy sprawdzać stronę to właśnie HTML uzyskać za pomocą przycisku wykazujące wyłączone jest wyłączona, podobnie jak to jest na stronie:

<button type="submit" class="button primary inverse" ng-disabled="!comment.$dirty && comment.$valid" disabled="disabled">Save</button> 

Test kątomierz poniżej powraca „Oczekiwany null równy niepełnosprawna”

var btnSave = element(by.css('.primary')); 
    expect(btnSave.isPresent()).toBeTruthy(); 

    var attr = element(by.css('.primary')).getAttribute('disabled'); 

    expect(attr).toEqual("disabled"); 

Kiedy próbuję, oczekuję, że "będzie równy niepełnosprawny.

expect(attr).toEqual("disabled"); 

Wszelkich pomysłów, gdzie idę źle?

Dzięki

+0

Zastanawiam się, czy ['isEnabled()'] (http://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.isEnabled) (lub jego promised wersja "nie") działa określić niepełnosprawność? –

Odpowiedz

7

getAttribute() funkcja w kątomierz zwraca wartość w postaci obietnicy. Tak więc albo czekasz, aż zostanie zwrócony, a następnie przeprowadzisz walidację lub możesz przekazać funkcję do expectation, która z kolei rozwiązuje obietnicę. disabled Atrybut html to boolean attribute, a więc zwracana wartość to true lub false. Oto jak to zrobić -

element(by.css('.primary')).getAttribute('disabled').then(function(attr){ 
    expect(attr).toBe(true); 
}); 

LUB

expect(element(by.css('.primary')).getAttribute('disabled')).toBe(true); 

Nadzieję, że to pomaga.

+0

Dzięki. Ale mogę uzyskać tylko to, co jest "prawdziwe". Tak, gdzieś wyłączone = "prawda" jest odbierana. element (by.css (". primary")). getAttribute ("wyłączony"). then (function (attr) { oczekiwać (attr) .toBe ("true"); }); – thegunner

+1

@thegunner wyłączony atrybut nie ma żadnej wartości przypisanej do niego jako jego atrybutu boolean. W tym przypadku możesz sprawdzić obecność nazwy atrybutu, sprawdzając, czy wartość jest prawdą. Zaktualizowana odpowiedź z tym samym. Dzięki –

+0

@thegunner wyłączony atrybut nie ma żadnej wartości przypisanej do niego jako jego atrybutu boolean. W tym przypadku możesz sprawdzić obecność nazwy atrybutu, sprawdzając, czy wartość jest prawdą. Zaktualizowana odpowiedź z tym samym. Dzięki –