Если вы тестируете с Cypress ( не Selenium ), вы можете создавать собственные команды
Не ясно, хотите ли вы вернуться, ВСЕ или ПЕРВЫЙ?
Может выполнять поиск по частичному селектору классов, используя эти выражения,
[class^="ClassBeginsWithThis"]
, где ^ = означает, что строка класса начинается с селектора [class*="ClassContainsThis"]
где * = означает, что строка класса имеет селектор где-то внутри.
Все
Cypress.Commands.add('getAll', {previousSubject: false}, (selectorArray) => {
const foundElements = selectorArray
.map(selector => Cypress.$(`[class^="css_selector--${selector}"]`)
.filter(x => x); // remove not-found
if (foundElements.length === 0) {
throw new Error("No elements found"); // Fail the test, since none exist
}
return cy.wrap(foundElements);
});
// Usage
cy.getAll(['IamClassOne', 'SomethingRandom', 'ThisisRandomAgain']);
Первый
Cypress.Commands.add('getFirst', {previousSubject: false}, (selectorArray) => {
const foundElements = selectorArray
.map(selector => Cypress.$(`[class*="css_selector--${selector}"]`)
.filter(x => x); // remove not-found
if (foundElements.length === 0) {
throw new Error("No elements found"); // Fail the test, since none exist
}
return cy.wrap(foundElements[0]);
});
// Usage
cy.getFirst(['IamClassOne', 'SomethingRandom', 'ThisisRandomAgain']);