Cypress 简明教程
Cypress - Custom Commands
Cypress 自定义命令由用户描述,而不是 Cypress 中的默认命令。这些自定义命令用于创建在自动化流程中重复的测试步骤。
我们可以添加覆盖已存在的命令。它们应放置在 Cypress 项目中 support 文件夹内的 commands.js 文件中。
Syntax
Cypress 中自定义命令的语法如下 −
Cypress.Commands.add(function-name, func)
Cypress.Commands.add(function-name, opts, func)
Cypress.Commands.overwrite(function-name, func)
在此,
-
function-name 是正在添加/覆盖的命令。
-
func 是传递给命令参数的传递函数。
-
opts 用于传递一个选项来描述自定义命令的隐式特征。它还用于确定如何处理先前的产生主体(仅适用于 Cypress.Commands.add()),而该选项的默认值为 false。选项 prevSubject 接受 false 忽略先前主体,接受 true 接受先前主体和接受 optional 开始一个链或利用预先存在的链。一个选项接受字符串、数组或布尔值。
Implementation of custom command
下面给出了 commands.js 中自定义命令的实现
Cypress.Commands.add("userInput", (searchTxt) => {
//to input search text in Google and perform search
cy.get("input[type='text']").type(searchTxt);
cy.contains("Google Search").click();
});
Implementation of Actual Test
下面给出了使用自定义命令在 Cypress 中实现实际测试的情况 −
describe('Tutorialspoint Test', function () {
// test case
it('Test Case 6', function (){
// launch the application
cy.visit("https://www.google.com/");
//custom parent command
cy.userInput('Java')
});
});
Execution Results
输出如下 −
输出日志显示自定义命令 – userInput (具有 get、type 和 click 命令)正在执行。
建议自定义命令不要太长。它应该简短,因为在自定义命令中添加太多操作往往会显示执行。