【发布时间】:2015-05-29 06:07:59
【问题描述】:
我有一些 E2E 测试目前正在通过。我认为这按预期工作,但是当我在将数据输入字段后使用browser.sleep() 修改某些字段以查看测试在达到预期结果时是否会失败。
我们的测试规范填写了一个表格,保存表格后,我们返回主页查看表格名称以显示在网格中(如果保存成功)。
我们规范中的预期代码如下:
expect(element.all(mainPO.getScheduled()).isDisplayed());
主页对象:
this.currentScheduledCampaign = by.linkText(scheduledData.scheduledEntity.name);
this.getCurrentScheduledCampaign = function() {
return this.currentScheduledCampaign;
};
预定实体:
this.scheduledEntity = {
name: 'Protractor Test' + ' ' + uuid.v4()
};
为什么.isDisplayed() 会将量角器测试返回为失败,即使我在保存活动之前在browser.sleep() 期间从名称中删除了“量角器测试”?
我尝试在getCurrentScheduledCampaign 和scheduledData.scheduledEntity.name 上使用console.log() 运行,它似乎返回正确的预期名称为"Protractor Test [UUID]" 和"{ using: 'link text', value: 'Protractor Test [UUID]'。
【问题讨论】:
-
我还从预期中提取了get方法并直接用
element.all(by.linkText(scheduledData.scheduledEntity.name)).isDisplayed();替换它并在browser.sleep()期间将名称完全更改为“测试”并且规范仍然通过
标签: javascript angularjs testing protractor end-to-end