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