Protractor错误消息返回一个Object

时间:2016-07-21 16:29:57

标签: javascript angularjs protractor

我期望protractor找到value_key(翻译)并返回true,以便测试成功。

在我的test-spec.js文件中我

Set rng = Sheets("Sheetname").Range(Tempcol & Srow & ":" & Tempcol & Frow)
        i = 0
        ReDim ary(0)
        For Each cell In rng
        ary(i) = cell.Value
        i = i + 1
        ReDim Preserve ary(i)
        Next cell
        ActiveSheet.Range(Startrow_fil & ":" & Endrow_fil).AutoFilter Field:=1, Criteria1:=ary, Operator:=xlFilterValues

量角器错误 信息: Key'的预期价值to equal Object({$$ state:Object({status:0}),catch:Object({}),then:Object({}),finally:Object({})})。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

看起来您的helpers.translate()函数会返回一个承诺

在Protractor / Jasmine中,只有断言的左边部分 - expect()部分能够隐含地解析承诺。在您的情况下,正确的部分toEqual()不是。

明确解决承诺

helpers.translate('value_key').then(function(value) {
    var text = element(by.xpath('//*[@id="idname"]/div/h3')).getText();
    expect(text).toEqual(value);
});

您还可以使用protractor.promise.all()来解决这两个承诺,然后断言:

var promise1 = element(by.xpath('//*[@id="idname"]/div/h3')).getText();
var promise2 = helpers.translate('value_key');

protractor.promise.all([promise1, promise2]).then(function(values) {
   expect(values[0]).toEqual(values[1]);
});

目前不是issues with using protractor.promise.all() in 4.0.0(应该是fixed in the next version(s))。解决方法可在此处获得。