Javascript 从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命令函数

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对象中如果名称与其他名称不冲突,非常感谢!