Код Senior Локаторы обновлено
Линтер хрупких селекторов
Условие
Напишите lintSelector(sel), которая возвращает массив кодов проблем (в этом порядке, без повторов):
"absolute-xpath": селектор начинается с/html;"index": есть:nth-child(,:nth-of-type(или XPath-индекс вида[цифры];"hashed-class": есть класс вида.css-+ буквы/цифры или._+ буквы/цифры (ровно после точки);"deep-chain": больше 4 шагов. Шаги: для XPath (начинается с/или() это непустые части между/; для CSS части, разделённые пробелами и>.
Пустой массив, если проблем нет.
Примеры
lintSelector("[data-testid=\"login\"]") // []
lintSelector("/html/body/div[2]/form/button") // ["absolute-xpath", "index", "deep-chain"]
lintSelector("div > div > div > span:nth-child(4)") // ["index"]
Как подойти
Подсказки: 2
- Сначала определите, XPath это или CSS.
- Пустые части после split отбрасывайте через filter(Boolean).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.