赛普拉斯:有没有办法编写一个可以使用 UI 检查复选框的命令

Cypress: Is there a way to write a command that can check a checkbox using UI

目前,我正在按照下面的 cypress 示例进行操作,它非常适合 type 命令。但是,我的命令太多了,我正在尝试尽可能地压缩其中的命令。在这种情况下,我只需要能够在某些测试中选中一个框,但不确定我将如何去做。任何提示/提示/建议将不胜感激。 :)

Cypress.Commands.add('typeLogin', (user) => {

  cy.get('input[name=email]').type(user.email)
  cy.get('input[name=password]').type(user.password)
  cy.get('input[name=checkbox]').check(user.checkbox)?

})

测试中:

    const user = { email: 'fake@email.com', password: 'Secret1' }';

    cy.typeLogin(user ) => {...

您可以在数据模型中提供要使用的复选框(或是否 check/not 选中复选框)。从那里,您有几个不同的选项,具体取决于您的应用程序的设置方式。如果只有一个复选框需要选中或不选中,则可以使用布尔值(下面的 useCheckbox)。如果有多个值可供选择,您可以传入一个字符串来使用(这可以是一个选择器,如果有不同的选择器,或者一个值,如果它是具有不同值的相同选择器)。

const user = { email: 'foo@foo.com', password: 'foo', useCheckbox: true, checkbox: 'bar' }
...
Cypress.Commands.add('typeLogin', (user) => {
  cy.get('input[name=email]').type(user.email)
  cy.get('input[name=password]').type(user.password)
  // we could use either `useCheckbox` to evaluate a boolean
  if (user.useCheckbox) {
    cy.get('input[name=checkbox]').check()
  }

  // or we could use the the `checkbox` field if we always to to check, we're just unsure of the value.
  // in the first case, `user.checkbox` is the selector to use
  cy.get(user.checkbox).check()
  // in this second case, `user.checkbox` is the value to select
  cy.get('input[name=checkbox]').check(user.checkbox)
})