2016-04-22 11 views
1

Nach dem Klicken auf das Akkordeon-Element, das Akkordeon-Panel öffnet, aber die expect() im folgenden Code vergeht, obwohl das gewünschte Panel erweitert wurde (aria-expanded = "True "). Ich versuche zu überprüfen, ob das richtige Panel geöffnet wurde. Ich bin neu im Winkelmesser - jede Hilfe wird geschätzt.Winkelmesser erwarten nicht arbeiten für nicht-eckigen Akkordeon Widget

var el = element(by.css('#brainstormingLink')); 
el.click().then(function(){ 
    browser.sleep(1000).then(function(){ 
     expect(element(by.css('#BrainstormingAccordion[aria-expanded="false"])).isPresent()); 
    }); 
}); 

Die HTML ist wie folgt:

<h3 id="brainstormingLink" class="menuSectionLink ui-accordion-header ui-helper-reset ui-state-default ui-accordion-header-active ui-state-active ui-corner-top" sectionnum="1" role="tab" aria-controls="BrainstormingAccordion" aria-selected="true" tabindex="0">Brainstorm</h3> 
<div id="BrainstormingAccordion" class="accordion-inner scrollable ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active" aria-labelledby="brainstormingLink" role="tabpanel" aria-expanded="true" aria-hidden="false" style="display: block; height: 282px; overflow: auto;"> 
    Follow these steps to brainstorm ideas:<br><br> 
     <ol> 
      <li>Use the add idea button <div class="toolbarButtonIcon inlineIcon"><div id="icon-plus">&nbsp;</div></div> to enter one idea, fact, or opinion about your topic that you think might be useful.</li> 
      <li>Continue using the add idea button <div class="toolbarButtonIcon inlineIcon"><div id="icon-plus">&nbsp;</div></div> to add as many ideas as you can.<br><br> 
       <div class="buttoncenter"><button class="btn btn-custom" type="button" name="brainstorming" title="brainstorming"> about brainstorming</button></div> 
      </li> 
     </ol> 
    </div> 
+0

Bitte sehen http://stackoverflow.com/help/someone-answers. – alecxe

Antwort

1

Ihr Test immer passiert, weil Sie die Behauptung in der expect Anweisung nicht abgeschlossen haben. .isPresent() gibt einen boolean, so dass Sie beenden müssen, um es mit dem, was das Ergebnis erwarten sein, dh .toBe(false) oder .toBeTruthy() usw.

Es genügt zu bemerken, dass isPresent wirklich fragt, ob dieses Element in der Seite vorhanden ist, wenn Sie wissen möchten, Wenn es derzeit für einen Benutzer sichtbar ist, verwenden Sie .isDisplayed(). Da dieses Element eine ID hat, denke ich, dass es besser ist, es so zu finden, wie Sie es mit dem ersten Element getan haben. Das HTML-Attribut ist nicht notwendig, es sei denn, Sie hatten Probleme, es zu finden. Ich verwende ID immer, wenn sie verfügbar ist, weil sie einzigartig sind.

Liste der verfügbaren Behauptungen hier: http://jasmine.github.io/2.0/introduction.html