我需要编写一个自定义命令以根据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
答案 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)
我想基于定位器构建逻辑,但意识到这是处理它的不好方法。我切换到属性值,它起作用了。谢谢大家的宝贵时间。