У меня есть функция fillInput()
, которая принимает селектор и значение в качестве параметров, затем:
Насколько я знаю, это действительно своего рода анти-паттерн и команда кипариса должен быть путь.
Итак, читая о дочерних командах , я вышел с этой командой, которая должна выполнять ту же функцию, что и моя служебная функция fillInput()
:
Cypress.Commands.add('fillInput', {prevSubject: 'element'}, (subject, value) => {
subject.clear();
subject.type(value);
});
Однако, когда я пытаюсь сделать это в спецификации через:
cy.get('#my-selector').fillInput('my-value');
, я получаю эту ошибку в консоли браузера Cypress:
TypeError: subject.clear is not a function
В документации cy.get()
говорят, что он дает элемент DOM, и {prevSubject: 'element'}
должен сделать subject
того же типа (насколько я понимаю).
Однако subject
, похоже, другого типа иметоды, которые работают с такими элементами, как type()
или 'clear () or ' should()
, не работают с дочерними объектами команд.
Как я могу заставить subject
моей дочерней команды действовать какДом Элемент?