Javascript 从Cypress命令返回给定字符串时出现Cypress类型错误
我创建了以下cypress命令函数Javascript 从Cypress命令返回给定字符串时出现Cypress类型错误,javascript,reactjs,cypress,Javascript,Reactjs,Cypress,我创建了以下cypress命令函数 Cypress.Commands.add("gen_date", () => { var now_dt = new Date(Date.now()); var dte = ("0" + now_dt.getDate()).slice(-2) + ("0" + now_dt.getHours()).slice(-2) + ("
Cypress.Commands.add("gen_date", () => {
var now_dt = new Date(Date.now());
var dte =
("0" + now_dt.getDate()).slice(-2) +
("0" + now_dt.getHours()).slice(-2) +
("0" + now_dt.getMinutes()).slice(-2) +
("0" + now_dt.getSeconds()).slice(-2) +
("00" + now_dt.getMilliseconds()).slice(-3);
return dte;
});
我在下面的测试文件中调用此命令
it("see if test string generated in input", () => {
let o = cy.gen_date();
cy.get("input[id=\"inputid\"]")
.as("inputinput")
.type(o)
.type("{enter}");
我希望o是一个字符串,但在cypress测试中,我得到了一个错误,cy.type()只能接受字符串或数字,而您传入了[object,object]
有人能给我指出正确的方向吗?Cypress自定义命令返回一个可链接的命令,该命令将结果转发给下一个链接的命令,以便您可以通过嵌套来访问它
cy.gen_date()。然后(dt=>{
cy.get(“输入[id=\”输入\“]”)
.as(“输入输出”)
.类型(dt)
.type(“{enter}”);
})
或者使用普通JS函数而不是自定义命令
const gen_date=()=>{
var now_dt=新日期(Date.now());
var dte=(“0”+now_dt.getDate()).slice(-2)+
(“0”+now_dt.getHours()).slice(-2)+
(“0”+now_dt.getMinutes()).slice(-2)+
(“0”+now_dt.getSeconds()).slice(-2)+
((“00”+now_dt.getmillizes()).slice(-3);
返回dte;
};
设o=gen_date();
cy.get(“输入[id=\”输入\“]”)
.as(“输入输出”)
.类型(o)
.type(“{enter}”);
全局添加函数: 在
/cypress/support/index.js中
Cypress.gen_date = () => {
var now_dt = new Date(Date.now());
var dte = ("0" + now_dt.getDate()).slice(-2) +
("0" + now_dt.getHours()).slice(-2) +
("0" + now_dt.getMinutes()).slice(-2) +
("0" + now_dt.getSeconds()).slice(-2) +
("00" + now_dt.getMilliseconds()).slice(-3);
return dte;
};
在测试中
let o = Cypress.gen_date();
请检查问题-Cypress.Commands.add(“gen_date”…
但是let o=generate_order_number()
Updated,试图使代码更具可读性和简洁性当我想在其他测试文件中恢复该js函数时,惯例是什么?我的印象是,除了cypress命令之外,您不应该将文件/函数导入cypress测试文件导入该函数应该可以,但您也可以将其添加到cypress对象中如果名称与其他名称不冲突,非常感谢!