如何在 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。
在 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。