使用 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'); }); });