无论isDisplayed是否为真,量角器测试都会通过

时间:2015-05-28 20:05:51

标签: javascript angularjs testing protractor end-to-end

我有一些目前正在通过的E2E测试。我认为这是按预期工作的,但是当我将数据输入到字段中以修改某些字段以查看测试是否会在达到预期结果时失败时使用browser.sleep()

我们的测试规范填写了一个表单,在保存表单后,我们导航回到主页以查看要在网格中显示的表单的名称(如果保存成功)。

我们规范中的预期代码如下:

expect(element.all(mainPO.getScheduled()).isDisplayed());

主页面对象:

this.currentScheduledCampaign = by.linkText(scheduledData.scheduledEntity.name);

this.getCurrentScheduledCampaign = function() {
     return this.currentScheduledCampaign;
}; 

scheduledEntity:

this.scheduledEntity = {
    name: 'Protractor Test' + ' ' + uuid.v4()
};

为什么.isDisplayed()将量角器测试作为失败返回,即使我在browser.sleep()保存广告系列期间删除了名称中的“量角器测试”?

我已尝试在console.log()getCurrentScheduledCampaign上使用scheduledData.scheduledEntity.name,并且似乎返回正确的预期名称"Protractor Test [UUID]""{ using: 'link text', value: 'Protractor Test [UUID]'

1 个答案:

答案 0 :(得分:2)

这是因为您错过了茉莉花期望的toBe() / toEqual() / ...部分。根本没有断言。

以下是检查ElementArrayFinder中所有元素是否可见的方法:

var elements = element.all(mainPO.getScheduled());
elements.each(function (elm) {
    expect(elm.isDisplayed()).toBe(true);
});