我有这段代码
<div id="mainContainer">
<div class="backStrip">
<span id="infoText">Written By Banmeet Singh</span>
</div>
<ul id="thumbsButtons"></ul> <span id="nextArrow">></span>
<span id="sidelogo">Thinking Forward</span>
<ul id="thumbsList">
<li>
<img class="forward" src="http://placehold.it/350x150" alt="Alternate Text" /> <span class="headerInfo">Josh Kloss</span>
</li>
<li>
<div class="thumbOverlay"><span>adasd</span> </div>
<img class="forward" src="http://placehold.it/350x150" alt="Alternate Text" />
</li>
<li>
<img class="forward" src="http://placehold.it/350x150" alt="Alternate Text" />
</li>
<li>
<img class="forward" src="http://placehold.it/200x100" alt="Alternate Text" />
</li>
<li>
<img class="forward" src="http://placehold.it/350x150" alt="Alternate Text" />
</li>
<li>
<img class="forward" src="http://placehold.it/200x100" alt="Alternate Text" />
</li>
</ul>
<div id="counterContainer">3 of 10</div>
</div>
如果我用浏览器删除该行等待测试继续,否则我得到
'等待量角器与页面同步时出错:“根元素(正文)没有注入器。这可能意味着它不在ng-app内。”'
当“by.model”行出现时,等待(不使用任何有角度的东西)怎么办?
另外我几乎可以肯定它在今天早上出去做一些差事之前已经有效了。
答案 0 :(得分:4)
如果您要测试的网页是有角度的,那么您应该在代码中将ignoreSynchronization
设置为false
- browser.ignoreSynchronization = false;
。
另外,请确保您的html body标签上有ng-app
属性,而没有该属性,量角器无法识别其角度或非角度页面。如果您的ng-app
标记位于body标记的后代元素上,则使用conf.js文件中的属性rootElement
来指示量角器从该标记开始检查角度。这是怎样的 -
rootElement: 'body/div', //if ng-app tag is on a div element under body
browser.wait()
函数中未解决isElementPresent()
返回的承诺。 wait()
函数始终等待返回布尔值,直到超时值到期,如果它没有返回任何内容,则抛出错误。同样isElementPresent()
根据元素的存在返回一个布尔值。以下是如何使用它 -
browser.wait(function() {
return browser.isElementPresent(by.css('[class="box-header"]')).then(function(present){
return present;
});
}, 10000);
如果您只是想通过使用量角器具有的ExpectedConditions
对象来检查DOM上是否存在该元素,那么还有另一种简单的方法。以下是一些使用示例 -
var EC = protractor.ExpectedConditions;
var element = element(by.css('[class="box-header"]'));
browser.wait(EC.visibilityOf(element), 10000); //Checks if element is present and enabled on DOM
browser.wait(EC.presenceOf(element), 10000); //Checks if element is present on DOM
browser.wait(EC.elementToBeClickable(element), 10000); //Use it if you want to wait for element to be clickable Checks if element is present and enabled on DOM
希望它有所帮助。