如何在 Cypress.io 中创建类似于 Selenium 扩展元素的可重用元素?

How to create an reusable element similar to Selenium extend elements in Cypress.io?

在 Selenium 中,可以扩展元素。这使得拥有一组可重用的自定义元素用于测试成为可能。

例如,我们可以添加一个getText方法。

public static string GetText(this IWebDriver driver)
{
    return driver.FindElement(By.TagName("body")).Text;
}

并按如下方式重新使用它:

myElement.getText();

这里有详细的示例:http://www.vcskicks.com/selenium-extensions.php

有没有办法在 Cypress.io 中复制这种行为?还是我们需要查询和调用相同的方法来获取数据?

我认为Custom Commands is what you're looking for. However, note the Cypress Best Practices。基本命令非常强大,你可以用它们完成很多事情。

您可以使用简单的函数来完成此操作。例如,您可以将几个函数移动到 utils.js.

export const getByText = (text) => cy.contains(text)

然后将这些方法导入您的规范文件。

import { getByText } from './utils'

it('finds the element', () => {
  getByText('Jane Lane')
})

您也可以创建 custom command, but that's sometimes not necessary as noted in the best practices