как подождать acynchronus scrollIntoView без использования cy.wait(XXX)
или сравнения высоты представления / элемента?
Вот как я думал:
const cyBrick = cy.get(selector);
cyBrick.scrollIntoView().then( _ => {
cyBrick
.then(([$brick]) => {
const brickBody = $brick.getBoundingClientRect();
cyBrick.trigger('mousedown', {which: 1, pageX: brickBody.x, pageY: brickBody.y});
...
});
});
В моем случае я ' m тестирует dragAndDrop, поэтому мне нужно
- для прокрутки к элементу, который нужно перетащить;
- mouseDown на элементе
- прокрутка до целевого контейнера и так далее ...
Также я пробовал настраиваемую команду
//commands.js
Cypress.Commands.add('scrollIntoViewAndUseThen', {prevSubject: true}, (subject) => {
cy.wrap(subject).scrollIntoView().as('scrolling');
cy.wait('@scrolling');
});
//mytest.spec.js
cyBrick.scrollIntoViewAndUseThen().then( _ => ...
Но только корням разрешено использовать @;
В данный момент я использую обходной путь с ожиданием cyBrick.scrollIntoView().wait(500)
PS: я читал в документах, что scrollToView позволяет связывать следует только разрешение