错误:无效的Chai属性:toBe。你是说“来”吗?

问题描述 投票:1回答:2

我试图检查角度网站中是否存在元素。我正在使用量角器5.4.0。

在my_steps.js文件的标题中,我有:

global.expect = require('chai').expect
var chai = require('chai');
var chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);

我用来断言下拉列表的代码是:

Then(/^(.*) is present$/, function (dropdown,callback) {
        expect(element(by.id(dropdown)).isPresent()).toBe(true);
        callback();

而量角器protractor.conf.js命令的输出是:

When application opened # ../Features/step_definitions/my_steps.js:62
   ✖ Then templateSelection is present # ../Features/step_definitions/my_steps.js:70
       Error: Invalid Chai property: toBe. Did you mean "to"?

我究竟做错了什么?

提前致谢。

javascript protractor chai cucumberjs
2个回答
0
投票

isPresent()返回一个承诺

expect(element(by.id(dropdown)).isPresent()).to.eventually.equals(true);


0
投票

正如您正在使用“chai-as-promised”插件,它使用流利的语言扩展Chai以声明有关承诺的事实。您必须稍微调整断言。以下页面提供了很好的例子。 Chai as promised page with explanations

对于您的问题,您需要更改:

.isPresent()).toBe(true);

至:

.isPresent()).to.eventually.equal(true);

因此,您的断言应如下所示:

expect(element(by.id(dropdown)).isPresent()).to.eventually.equal(true);

另请注意,我没有看到使用.equals只有.equal

© www.soinside.com 2019 - 2024. All rights reserved.