4

在 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 中复制这种行为?还是我们需要查询和调用相同的方法来获取数据?

4

2 回答 2

10

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

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

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

import { getByText } from './utils'

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

您也可以创建自定义命令,但有时没有必要,如最佳实践中所述。

于 2017-12-07T20:59:23.717 回答
2

我认为自定义命令是您正在寻找的。但是,请注意赛普拉斯最佳实践。基本命令非常强大,您可以使用它们完成很多工作。

于 2017-12-07T12:42:05.817 回答