我为Angular2应用程序编写了以下量角器测试:
describe('Puppet container', () => {
beforeEach(() => {
browser.get('/#/puppet');
});
it('should display puppet summary', () => {
browser.wait($('puppet-summary').isPresent, 1000);
const subject = $('puppet-summary').isDisplayed();
const result = true;
expect(subject).toEqual(result);
});
});
由于以下原因导致失败:Failed: Cannot read property 'parentElementArrayFinder' of undefined
有人可以告诉我为什么会收到这个错误吗?我有一个页面,只有在加载后端数据时才会显示<puppet-summary>
元素。这就是为什么我要检查它是否存在(它只在半秒左右后出现)。要仅在有数据显示时显示,我使用以下HTML代码:
<div *ngIf="puppetMasters.length">
<puppet-summary></puppet-summary>
</div>
puppetMasters
是一个数组,一旦加载后端的数据就会被填充。
答案 0 :(得分:5)
browser.wait($('puppet-summary').isPresent, 1000);
“等待元素出现”应该通过内置的presenceOf
Expected Condition完成:
var EC = protractor.ExpectedConditions;
var elm = $('puppet-summary');
browser.wait(EC.presenceOf(elm), 1000);
答案 1 :(得分:0)
我建议您查看此site以查找所有元素定位器,条件,... 对于元素存在,您可以看到此示例: element(locator).isPresent
答案 2 :(得分:0)
请尝试以下功能。它会等到给定的html对象出现。
browser.wait(function() {
return element(by.css("#edudrop1")).isPresent()});
答案 3 :(得分:-1)
希望它有所帮助)
.isPresent() vs .isPresent