如何在 Cypress 中创建命令
How to creat command in Cypress
在调试我的 Cypress 测试时,我使用一个命令来突出显示我当前正在使用的元素
{CurrentElement}.then($el=> {$el.css('border', '1px solid magenta')})
我想创建内容更丰富、更简短的内容。所以我正在寻找 commands.js 中的自定义命令。但是我没有成功这样做。我试图在 commands.js:
中创建自定义命令
Cypress.Commands.add("highlight", $el=> {$el.css('border', '1px solid magenta')})
然后以这种方式在我的测试中使用它:
{CurrentElement}.then(highlight())
或者像这样:
{CurrentElement}.then(highlight($el))
但每当我收到 ReferenceError: highlight is not defined 时。我该如何为此执行工作命令?
您应该将 highlight()
称为 cy.highlight()
,因为它是 cy
的链接方法。所以它看起来像这样:
Commands.js
Cypress.Commands.add("highlight", $el=> {$el.css('border', '1px solid magenta')})
spec.js
{CurrentElement}.then(cy.highlight())
为了使用语法:
{CurrentElement}.then(highlight($el))
您不需要自定义命令。只需将 highlight
声明为普通函数即可。
但是,使用自定义命令,您将能够按如下方式编写:
{CurrentElement}.highlight();
恕我直言,哪个更优雅。
为此,您需要指定命令应用于元素主题,如下所示:
Cypress.Commands.add("highlight", {prevSubject: 'element'}, $el=> {$el.css('border', '1px solid magenta')});
在调试我的 Cypress 测试时,我使用一个命令来突出显示我当前正在使用的元素
{CurrentElement}.then($el=> {$el.css('border', '1px solid magenta')})
我想创建内容更丰富、更简短的内容。所以我正在寻找 commands.js 中的自定义命令。但是我没有成功这样做。我试图在 commands.js:
中创建自定义命令Cypress.Commands.add("highlight", $el=> {$el.css('border', '1px solid magenta')})
然后以这种方式在我的测试中使用它:
{CurrentElement}.then(highlight())
或者像这样:
{CurrentElement}.then(highlight($el))
但每当我收到 ReferenceError: highlight is not defined 时。我该如何为此执行工作命令?
您应该将 highlight()
称为 cy.highlight()
,因为它是 cy
的链接方法。所以它看起来像这样:
Commands.js
Cypress.Commands.add("highlight", $el=> {$el.css('border', '1px solid magenta')})
spec.js
{CurrentElement}.then(cy.highlight())
为了使用语法:
{CurrentElement}.then(highlight($el))
您不需要自定义命令。只需将 highlight
声明为普通函数即可。
但是,使用自定义命令,您将能够按如下方式编写:
{CurrentElement}.highlight();
恕我直言,哪个更优雅。
为此,您需要指定命令应用于元素主题,如下所示:
Cypress.Commands.add("highlight", {prevSubject: 'element'}, $el=> {$el.css('border', '1px solid magenta')});