单击accordion元素后,手风琴面板会打开,但即使所需的面板已展开(aria-expanded =" true"),下面代码中的expect()也会通过。我正在尝试验证是否已打开正确的面板。我是量角器的新手 - 任何帮助都将受到赞赏。
var el = element(by.css('#brainstormingLink'));
el.click().then(function(){
browser.sleep(1000).then(function(){
expect(element(by.css('#BrainstormingAccordion[aria-expanded="false"])).isPresent());
});
});
HTML如下:
<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"> </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"> </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 :(得分:1)
您的测试总是通过,因为您没有在expect
语句中完成断言。 .isPresent()
返回一个布尔值,因此您需要使用您希望结果的任何内容完成它,即.toBe(false)
或.toBeTruthy()
等。
请注意,isPresent
确实询问页面中是否存在该元素,如果您想知道用户当前是否可以看到该元素,请使用.isDisplayed()
。此外,由于该元素具有ID,我认为您最好像使用第一个元素一样定位它,除非您无法找到它,否则HTML属性是不必要的。我总是使用ID,因为它们是唯一的。