如何使用Webdriver.io和Chai作为Promised来验证css属性



当前使用Webdriver.io,Mocha、Chai和Chai作为Promised,但在尝试验证CSS属性时,我很难获得要验证的promise:

代码:

'use strict';
var chai = require('chai'),
    chaiAsPromised = require('chai-as-promised');
chai.use(chaiAsPromised);
chai.should();
chaiAsPromised.transferPromiseness = browser.transferPromiseness;
describe('Buttons', function() {
    var buttonSelector = '.button';
    browser.url('http://localhost/buttons.html');
    it('should have square corners by default', function (done) {
        browser
            .getCssProperty(buttonSelector, 'border-top-left-radius').should.eventually.become('0px')
            .call(done);
    });
});

然而,我收到这个错误:

默认按钮:微小1) 默认情况下应该有直角1个失败的

1) 默认按钮:默认情况下,微小尺寸应具有方形角:未捕获的断言错误:应{Object(property,value,…)}深度等于"0px"0,在assertEqual处传递(2s)(/nod_module/chai/lib/chai/core/assertions.js:393:19)

  at ctx.(anonymous function) (/node_modules/chai/lib/chai/utils/addMethod.js:40:25)
  at WebdriverIO.<anonymous> (/node_modules/chai-as-promised/lib/chai-as-promised.js:302:26)
  at /node_modules/webdriverio/lib/utils/PromiseHandler.js:85:52
  at process._tickCallback (node.js:419:13)

getCSSProperty返回类似的对象

{
    property: 'width',
    value: '100px',
    parsed: {
        type: 'number',
        string: '100px',
        unit: 'px',
        value: 100
    }
}

您的错误消息说0px不等于该对象,这实际上是真的。在这种情况下,最好使用回调。也许可以使用"Chai Things"插件。

根据文档,它不返回promise?

看起来你应该使用回调。

编辑:好吧,我可能误解了文档,相反,可能是promise中输出的值不是你所期望的。如果您查看文档,您可以看到回调产生了什么。因此,我们可以预期,这将与承诺相同。然后,你可以使用这样的东西:

browser.getCssProperty(buttonSelector, 'border-top-left-radius').should.eventually.have.property('value', '0px').call(done);

相关内容

  • 没有找到相关文章

最新更新