赛普拉斯条件语句取决于输入字段是否被禁用
Cypress conditional statement depending on whether the input field is disabled or not
我在页面上有一些输入字段。它们可以被禁用或不被禁用。所以我需要在此字段中键入文本,以防万一它未被禁用。我尝试这样做:
fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`)
.should('not.be.disabled')
.then(() => {
cy.get(`[data-testid="pick-up-town"]`).type(pickUpTown);
});
}
但是我的测试失败了,错误是“10000 毫秒后重试超时:预期‘’不是 'disabled'”。
我如何才能在该字段未被禁用时键入它,而在它被禁用时什么也不做?
去掉should,这只会在一个条件下成功。相反,在 then()
内部测试
fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`)
.then($el => {
if (!$el.is(':disabled')) {
cy.wrap($el).type(pickUpTown);
}
});
}
您可以使用JQuery:enabled
检查并实施If-Else。
fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`).then(($ele) => {
if ($ele.is(":enabled")) {
cy.get(`[data-testid="pick-up-town"]`).type(pickUpTown)
}
})
}
我在页面上有一些输入字段。它们可以被禁用或不被禁用。所以我需要在此字段中键入文本,以防万一它未被禁用。我尝试这样做:
fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`)
.should('not.be.disabled')
.then(() => {
cy.get(`[data-testid="pick-up-town"]`).type(pickUpTown);
});
}
但是我的测试失败了,错误是“10000 毫秒后重试超时:预期‘’不是 'disabled'”。 我如何才能在该字段未被禁用时键入它,而在它被禁用时什么也不做?
去掉should,这只会在一个条件下成功。相反,在 then()
内部测试fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`)
.then($el => {
if (!$el.is(':disabled')) {
cy.wrap($el).type(pickUpTown);
}
});
}
您可以使用JQuery:enabled
检查并实施If-Else。
fillPickUpTown(pickUpTown: string) {
cy.get(`[data-testid="pick-up-town"]`).then(($ele) => {
if ($ele.is(":enabled")) {
cy.get(`[data-testid="pick-up-town"]`).type(pickUpTown)
}
})
}