如何使用chai / chai-smoothie声明输入字段的值?

时间:2018-11-08 08:43:55

标签: protractor chai cucumberjs serenity-js

谢谢蔡司!

如何使用chai / chai-smoothie断言输入字段的值?

鉴于getText()始终为空,我们应该使用element.getAttribute('value')(请参阅:How to getText on an input in protractor

我希望能够做类似的事情:

expect(this.nameTextbox).to.eventually.have.value('name');

这似乎不起作用:

expect(this.nameTextbox.getAttribute('value')).to.eventually.equal('name');

AssertionError: expected { Object (browser_, then, ...) } to equal 'name'

1 个答案:

答案 0 :(得分:1)

chai-smoothie使断言失败时的错误消息更易读。但是它不能处理承诺:this.nameTextbox.getAttribute('value')返回承诺。

注意:所有Protractor API的返回承诺。

您需要将chai-as-promisedchai一起使用来处理承诺。

var chai = require('chai'),

chai.use(require('chai-as-promised'));
chai.use(require('chai-smoothie'));

global.expect = chai.expect;

// then can do assertion as following:
expect(this.nameTextbox.getAttribute('value')).to.eventually.equal('name');