AFAIK Нельзя использовать что-то вроде contains
в селекторе css (это то, что использует cy.get
). Однако вы можете получить все кнопки и вызвать на них each
, чтобы получить значение data-testid
Например:
cy.get ('[data-testid = "menu-list"]').children ('button'). each (btn => cy.log (btn.getAttribute ("data-testid")))
В случае, если у вас есть кнопки, их data-testid
атрибут не начинается с option-
, и вы хотите отфильтровать их, я бы предложил иметь 2 разных атрибута данных: один для фильтрации, который не должен быть уникальным (например, data-testid='option'
), а другойтот, который содержит интересное значение (например, data-value='1'
)
Расширение cypress-xpath - единственный известный мне способ использования xpath с Cypress. Относительно производительности у меня нет никаких данных. Я полагаю, что это медленнее, чем
cy.get
с css selector, как в Selenium. Но я также считаю, что в большинстве случаев это бессмысленно. Как и при любом вопросе о производительности, лучшим ответом является выполнение ваших собственных измерений в контексте, который вам подходит.