我有一个简单的页面对象方法:
page.prototype.copyLink = function() {
this.visit("https://myWebsite.com");
this.login(); // once logged in, presented with list of elements
return {
firstCampaign: this.find('#el-1').getText(), //returns a promise
secondCampaign: this.find('#el-2).getText() // returns a promise
}
}
module.exports = page;我使用Jest和chai-as-promised测试每个#el中的文本是否相同:
var page = require("./page");
it("Export link icon should link to export html page", function(){
var copyLink = page.copyLink();
return copyLink.firstCampaign.should.eventually.equal(copyLink.secondCampaign);
});由于某些原因,chai成功地从firstCampaign中提取了文本,但没有从secondCampaign中提取文本,因此我得到了以下错误:
AssertionError: expected '##TEST STRING##' to equal { Object (flow_, stack_, ...) }
at getBasePromise.then.then.newArgs (node_modules/chai-as-promised/lib/chai-as-promised.js:302:22)
at ManagedPromise.invokeCallback_ (node_modules/selenium-webdriver/lib/promise.js:1384:14)
at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:3092:14)
at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:3075:27)
at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2935:27)
at node_modules/selenium-webdriver/lib/promise.js:676:7
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)为什么chai没有从第二个promise中提取文本?
发布于 2017-11-09 23:00:01
在进行相等的比较之前,您的代码只等待第一个promise。
您需要等待all promises的执行
var copyLink = page.copyLink();
var actual;
return Promise.all([copyLink.firstCampaign, copyLink.secondCampaign]).then(results => results[0].should.equal(results[1])).should.be.fulfilled;https://stackoverflow.com/questions/47145257
复制相似问题