javascript - 如何在 Cypress 中创建命令

标签 javascript jquery cypress autotest

在调试我的 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 时。我该如何执行这个工作命令?

最佳答案

为了使用语法:

{CurrentElement}.then(highlight($el))

您不需要自定义命令。只需将 highlight 声明为普通函数即可。

但是,使用自定义命令,您将能够按如下方式编写它:

{CurrentElement}.highlight();

恕我直言,哪个更优雅。

为此,您需要指定应将命令应用于元素主题,如下所示:

Cypress.Commands.add("highlight", {prevSubject: 'element'}, $el=> {$el.css('border', '1px Solid Magenta')});

关于javascript - 如何在 Cypress 中创建命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57816270/

相关文章:

javascript - 如何防止通过退出键关闭弹出窗口

javascript - 解析没有键的多维JSON数组

javascript - 文本隐写术 - 使用 JavaScript 加密/隐藏文本并使用 PHP 解密/取消隐藏

angular - Cypress 在单独的测试中两次触发 cy.wait(1000)

javascript - 将表名设置为 Web 数据库的变量?

javascript - 如何使用自定义组件解析主题标签和字符串提及

jquery - .触发('click');没有触发

jquery - 如何使 Bootstrap 网格在选项卡 Pane 中按预期工作?

azure - 为什么 Cypress 和 Azure DevOps 的测试自动化仅取得部分成功?

javascript - 在 Cypress 中覆盖 cy.click() 命令的正确方法是什么?