首页 > 解决方案 > UI 元素的自定义子命令

问题描述

我们目前对所有<select>元素都使用 Select2 并且由于明显的原因cy.get("#element").select("foo")无法正常工作。根据文档,我们创建了自己的自定义命令cy.get("#element").select2("foo"),它只包含了一些选择“foo”的步骤。

这在尝试选择值时效果很好,但我们希望避免为 clear()、value() 等添加自定义命令。

我们还想避免使用 Select2 API,因为这需要有人理解该 API,而不仅仅是在 Cypress API 中工作。

我们想通过使用 Cypress 友好的对象来创建更灵活的东西。看起来像这样的东西:

cy.get("#element").select2().as("select2");
cy.get("@select2").select("foo");
cy.get("@select2").should("be.equal", "foo");
cy.get("@select2").clear();

是否可以创建一个返回对象的子命令,然后可以覆盖这些内置命令?

我们无法从我们的自定义命令返回我们的自定义对象,而不先cy.wraping 它,这违背了目的。

标签: cypress

解决方案


推荐阅读