如何解决如何在赛普拉斯中断言JavaScript对象?
我正在尝试获取一个span标记的文本并将其更改为number,然后对该数字使用断言
这是我的command.js
文件:
function num(){
// this is the span text "Published August 27th,2020"
cy.get("span_text").then(function($el){
var actualText = $el.text()
var split = actualText.split(" ")
var year = split[split.length - 1];
var x = parseInt(year)
return cy.wrap(x); // 2020
})
}
Cypress.Commands.add('year',num)
// test.js
const newProject = cy.year().then((value) => value
console.log(value) // 2020 -> OK
);
console.log(newProject) // [Object] here is my question,why is an Object in here ??? I expect to be be a same as 2020
expect(newProject).to.be.greaterThan(2019) // expected [object Object] to be a number or a date
但是我在赛普拉斯日志上收到此错误消息:
expected [object Object] to be a number or a date
我发现我不能断言对象而不是数字。但是我不知道如何用另一个数字来断言该对象的返回值。谁能帮助我,让我知道我的考试有什么问题,我该如何解决呢?
解决方法
在此代码段中,您将Promise分配给newObject
。诺言本质上是您正在执行的任何异步命令(在这种情况下为year()
的“跟踪器”)。不幸的是,仅从then
返回的值不会将其分配给newObject
。
有两种获取期望值的方法:
- 将您的主张移至“然后”:
cy.year().then((value) =>
expect(value).to.be.greaterThan(2019)
);
- 使用async/await:
const assertYear = async () => {
const newProject = await cy.year();
expect(newProject).to.be.greaterThan(2019);
};
assertYear();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。