使用 Cypress 进行复选框验证


Cypress 通过其内置函数来处理复选框的选中和取消选中操作。对于复选框,元素的标签名称应为 input,并且 html 代码中的 type 属性应为 checkbox。

使用的命令是 check()。此命令需要与提供 DOM 元素的命令链接,并且元素的类型应为复选框。以下是 check 命令的各种用法:

  • check() - 不带参数的 check() 命令会选中所有复选框。当它与 check() 方法链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').check()
  • check() - 不带参数的 check() 命令会选中具有特定 id 的复选框,该 id 作为参数传递给链接的 Cypress get() 命令。

cy.get('#option1').check()
  • check('Value1') - 带有 value 作为参数的 check() 命令会选中具有指定值的复选框。当它与 check() 命令链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').check('Tutorialspoint')
  • check('Value1', 'Value2') - 带有 values 作为参数的 check() 命令会选中具有指定值的复选框。当它与 check() 命令链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').check('Tutorialspoint', 'Selenium')
  • check({ force: true }) - 带有 option 作为参数的 check() 命令会更改复选框的默认行为。可以有三种类型的选项:log、force 和 timeout,其默认值分别为 true、false 和 defaultCommandTimeout(4000 毫秒)。

cy.get('.check-boxes').should('not.be.visible').check({ force: true
}).should('be.checked')

Cypress 使用 force 选项与隐藏元素交互,然后强制内部选中复选框。

与 check 命令类似,Cypress 中也存在 uncheck 命令。

使用的命令是 uncheck()。此命令需要与提供 DOM 元素的命令链接,并且元素的类型应为复选框。以下是 uncheck 命令的各种用法:

  • uncheck() - 不带参数的 uncheck() 命令会取消选中所有复选框。当它与 uncheck() 链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').uncheck()
  • uncheck() - 不带参数的 uncheck() 命令会取消选中具有特定 id 的复选框,该 id 作为参数传递给链接的 Cypress get() 命令。

cy.get('#option1').uncheck()
  • uncheck('Value1') - 带有 value 作为参数的 uncheck() 命令会取消选中具有指定值的复选框。当它与 uncheck() 命令链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').uncheck('Tutorialspoint')
  • uncheck('Value1', 'Value2') - 带有 values 作为参数的 uncheck() 命令会取消选中具有指定值的复选框。当它与 uncheck() 链接时,get 方法应将 [type="checkbox"] 作为 CSS 选择器。

cy.get('[type="checkbox"]').uncheck('Tutorialspoint', 'Selenium')
  • uncheck({ force: true }) - 带有 option 作为参数的 uncheck() 命令会更改复选框的默认行为。可以有三种类型的选项:log、force 和 timeout,其默认值分别为 true、false 和 defaultCommandTimeout(4000 毫秒)。

cy.get('.check-boxes').should('not.be.visible').uncheck({ force: true
}).should('be.unchecked')

Cypress 使用 force 选项与隐藏元素交互,然后强制内部取消选中复选框。

我们可以在 Cypress 中的 check() 和 uncheck() 命令中应用断言。

示例

复选框代码实现。

describe('Tutorialspoint Test', function () {
   // test case
   it('Test Case2', function (){
      cy.visit("https://tutorialspoint.com/selenium/selenium_automatio
      n_practice.htm");
      // checking by values
      cy.get('input[type="checkbox"]')
      .check(['Manual Tester','Automation Tester']);
      // unchecking all values
      cy.get('input[type="checkbox"]').uncheck();
      // checking and assertion combined with and()
      cy.get('input[value="Automation Tester"]')
      .check().should('be.checked').and('have.value','Automation Tester');
      // unchecking and assertion combined with and()
      cy.get('input[value="Automation Tester"]')
      .uncheck().should('not.be.checked');
   });
});

更新于:2020年8月5日

10K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告