В настоящее время мы используем Select2 для всех наших <select>
элементов и по понятным причинам cy.get("#element").select("foo")
не будет работать. В соответствии с документами мы создали нашу собственную команду cy.get("#element").select2("foo")
, которая просто оборачивает несколько шагов, чтобы выбрать «foo».
Это хорошо работает при попытке выбрать значение, но мы бы хотели избежать добавления пользовательских команд для clear (), value () и т. Д.
Мы также хотели бы избежать использования API Select2, потому что для этого нужно, чтобы кто-то понимал этот 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.wrap
, который игнорирует цель.