我试图检查角度网站中是否存在元素。我正在使用量角器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"?
我究竟做错了什么?
提前致谢。
isPresent()
返回一个承诺
expect(element(by.id(dropdown)).isPresent()).to.eventually.equals(true);
正如您正在使用“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