赛普拉斯-使用基于值的自定义命令

时间:2019-12-09 18:43:24

标签: cypress

我需要编写一个自定义命令以根据spec.ts文件提供的元素值执行某些步骤。我不知道如何将值A和B传递给自定义命令,如何存储基于A或B的定位器值,然后使用then命令打印值

Spec.ts文件

cy.writetemp(A)
cy.writetemp(B)

自定义命令

cypress.command.add(writetemp,(A) => {
cy.get("select[name='Type']").should('have.value', 'A'), then print Apple
cy.get("select[name='Type']").should('have.value', 'B'), then print Banana

2 个答案:

答案 0 :(得分:0)

我不确定您到底想要实现什么。

但是您可以这样定义一个自定义命令:

 Cypress.Commands.add("writeTemp", (param) => {
        if (param === "body") {
            cy.get(param).should('exist')
        } else if (param === "B") {
            cy.get("asdasd").should("contain", param);
        }
    })

可以根据需要传递任意多个参数。在这里,我仅指定了一个(“参数”)。

用法:

describe("abc", () => {
    it("get body and succeed", () => {
        cy.visit("index.html");
        cy.writeTemp("body")
    });

    it("get asdasd and fail", () => {
        cy.visit("index.html");
        cy.writeTemp("B")
    });
})

让我知道我是否误解了你。

答案 1 :(得分:0)

我想基于定位器构建逻辑,但意识到这是处理它的不好方法。我切换到属性值,它起作用了。谢谢大家的宝贵时间。