Код Middle Локаторы обновлено
Выбор лучшего локатора по атрибутам
Условие
Напишите bestLocator(el). Элемент описан объектом с необязательными полями role, name (доступное имя), testId, id, attrName (атрибут name), tag. Вернуть строку по приоритету команды:
- есть
roleиname:getByRole('<role>', { name: '<name>' }); - есть
testId:getByTestId('<testId>'); - есть стабильный
id:locator('#<id>'). Id нестабилен, если содержит:или три цифры подряд; - есть
attrNameиtag:locator('<tag>[name="<attrName>"]'); - иначе
null.
Примеры
bestLocator({"role":"button","name":"Войти","testId":"login"}) // "getByRole('button', { name: 'Войти' })"
bestLocator({"role":"button","testId":"login"}) // "getByTestId('login')"
bestLocator({"id":"email"}) // "locator('#email')"
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.