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

时间:2018-08-29 12:47:26

标签: javascript protractor chai cucumberjs

我正在尝试检查一个有角度的网站中是否存在某个元素。我正在使用量角器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"?

我在做什么错了?

谢谢。

2 个答案:

答案 0 :(得分:0)

isPresent()返回一个诺言

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

答案 1 :(得分: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