Cucumber 如何按照承诺处理chai中的element.all(locator).each(eachFunction)

Cucumber 如何按照承诺处理chai中的element.all(locator).each(eachFunction),cucumber,protractor,chai,chai-as-promised,Cucumber,Protractor,Chai,Chai As Promised,我用量角器,黄瓜和柴做保证 我尝试测试一个搜索字段,并验证每个搜索结果是否包含搜索输入值。使用Chai和Chai时,我的原型效果非常好。 以下是测试用例:用户输入“水果”,将返回一个项目列表:苹果水果、橘子水果、梨水果。 我有以下几点: //在对象文件中 “错误消息”:“引用错误:未定义承诺” 1) 所有内容在控制台日志中显示为[object] 2) 如果没有像承诺的那样使用chai,那么Each和“toContain”或IndexOf会像魅力一样工作,而且非常直接。有了chai和chai,

我用量角器,黄瓜和柴做保证 我尝试测试一个搜索字段,并验证每个搜索结果是否包含搜索输入值。使用Chai和Chai时,我的原型效果非常好。
以下是测试用例:用户输入“水果”,将返回一个项目列表:苹果水果、橘子水果、梨水果。
我有以下几点:

//在对象文件中

“错误消息”:“引用错误:未定义承诺”

1) 所有内容在控制台日志中显示为[object] 2) 如果没有像承诺的那样使用chai,那么Each和“toContain”或IndexOf会像魅力一样工作,而且非常直接。有了chai和chai,我就无法使用Each方法,也无法“循环”水果列表和“期望”每个项目。(注:“期望”声明为chai.expect.
这与其他类似的张贴不同:

因为另一个帖子知道数组中有多少项,并且有固定值。在我的情况下,我不知道数组中的条目数

此外,如何将承诺的格式转换为可读格式:例如,我需要知道

Page.searchResultField.count()
但我只能得到对象值

//  in step file
this.Then(/^display all search result$/, function(callback) {
    Page.searchResultField.each(function(element){
        element.getText().then(function(value) {
            expect(promise.fulfilled(value.indexOf('Fruit') >-1)).to.eventually.be.true.and.notify(callback);

        });
    });
});
Page.searchResultField.count()