【发布时间】:2023-03-04 21:10:02
【问题描述】:
我收到此错误
AssertionError: expected { state: 'pending' } to equal 'Platform Configurator'
我已经安装了 chai , mocha 到 npm
它运行测试但没有通过断言
var webdriverio = require('webdriverio');
var should = require('chai').should()
var expect = require('chai').expect()
var options = {
desiredCapabilities: {
browserName: 'chrome'
}
};
before(function() {
browser=webdriverio.remote(options)
return browser.init()
});
describe('sauce labs page test', function() {
it('should assert page title', function(done) {
browser.url('https://docs.saucelabs.com/reference/platforms-configurator/?_ga=1.5883444.608313.1428365147#/');
browser.getTitle().should.equal('Platform Configurator');
done();
});
});
编辑:
如果我使用它,使用 setTimeout 它会在测试完成之前甚至在页面加载之前通过。
var webdriverio = require('webdriverio');
var should = require('chai').should()
var expect = require('chai').expect()
var options = {
desiredCapabilities: {
browserName: 'chrome'
}
};
before(function() {
browser=webdriverio.remote(options)
return browser.init()
});
describe('sauce labs page test', function() {
it('should assert page title', function() {
browser.url('https://docs.saucelabs.com/reference/platforms-configurator/?_ga=1.5883444.608313.1428365147#/');
setTimeout(function () {
browser.getTitle().should.equal('Platform Configurator');
}, 10000)
});
});
【问题讨论】:
-
酱实验室的内容是动态的还是静态的?如果是动态的,您是否需要在某处暂停以传播内容?
-
@zipzit 我以为
done()正在这样做。我推荐了this -
我不是这里的专家。我也在学柴。但我没有看到 done 命令如何“知道”saucelabs 的所有 JS 代码都已完成传播动态数据。我只是好奇你是否可以人为地插入延迟,看看结果是否不同。
-
@zipzit 上面已编辑以包含延迟的结果。
-
.getTitle 是异步的。你正在看到一个承诺。这是一个类似的已回答问题,stackoverflow.com/questions/38663066/…。或者您可以升级到 V4,所有内容都是同步的,webdriver.io/guide/getstarted/v4.html。
标签: javascript node.js mocha.js chai webdriver-io