У меня проблемы со свитком, который изменяет размер через несколько миллисекунд после рендеринга остальной части DOM, это приводит к тому, что свиток почти достигает дна, пропуская его на несколько пикселей, в результате кнопка, которую мне нужно нажатьостается отключенным.Поэтому я ищу лучший и более последовательный способ ожидания этого условия без добавления явного ожидания.
Я пытался дождаться всех доступных вызовов XHR, которые происходят после входа в систему, это работает в большинстве случаев.Временами, но не на 100% (на электроне, который использует наш CI), я также пытался получить другие элементы перед прокруткой, например, проверка кнопки отключена, но этого времени кажется недостаточно для полного изменения размера прокрутки.
Вот мой пример кода:
Cypress.Commands.add('waitForRequestAndVisit', (path, url) => {
cy.server();
cy.route('GET', path).as('request');
cy.visit(url);
cy.wait('@request');
}),
Это файл спецификации:
cy.waitForRequestAndVisit('**/api/v1/auth/validate_token', '/');
const termsAndConditionsScroll = '[data-testid=terms-and
conditions]';
cy.get(termsAndConditionsScroll).scrollTo('bottom');
cy.getSubmitButton()
.should('not.be.disabled')
.click();