.should / .and ретраят проверку на результате предыдущей query-команды; передавайте assertion-строку или callback с ожиданиями внутри.
Разбор
cy.get(x).should('be.visible').and('contain', 'Hi').
- В callback можно делать несколько expect — тоже ретраится.
- Не кладите клик внутрь should-callback.
- Читаемые failure messages экономят время.
Пример
cy.get('[data-cy=total]').should(($el) => {
expect(parseInt($el.text(), 10)).to.be.greaterThan(0);
});
Итог
should — идиоматичная retrying-проверка; side effects оставляют командам клика/type.