← Назад к вопросам
Написать CSS селектор
2.0 Middle🔥 201 комментариев
Условие
Дан HTML код:
<table id="users-table">
<tr class="header">
<th>Name</th>
<th>Email</th>
</tr>
<tr class="row">
<td class="name">John</td>
<td class="email">john@test.com</td>
</tr>
<tr class="row active">
<td class="name">Jane</td>
<td class="email">jane@test.com</td>
</tr>
</table>
Напишите CSS селекторы для:
- Всех строк таблицы (кроме заголовка)
- Активной строки
- Email во второй строке данных
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Решение
CSS селекторы — это фундаментальный навык QA-автоматизатора при работе с Selenium, Playwright и другими фреймворками. Правильно написанный селектор — залог надёжности и поддерживаемости тестов.
1. Все строки таблицы (кроме заголовка)
#users-table tr.row
Объяснение: Селектор #users-table выбирает таблицу по ID, затем спускаемся к элементам tr с классом row. Это исключает заголовок, так как у него класс header, а не row.
Альтернативные варианты:
#users-table tr:not(.header)— все строки таблицы, кроме заголовкаtable#users-table tr.row— более специфичный селектор
2. Активная строка
#users-table tr.row.active
Объяснение: Селектор ищет элемент tr, у которого одновременно присутствуют классы row и active. В нашем HTML это вторая строка данных с Jane.
Альтернативные варианты:
tr.row.active— если уверены, что нет других таблиц#users-table tr[class~="active"]— использует селектор атрибута для поиска класса
3. Email во второй строке данных
#users-table tr.row:nth-child(3) td.email
Объяснение:
#users-table— таблица по IDtr.row— строка данных (не заголовок):nth-child(3)— третий дочерний элемент таблицы (первый tr — заголовок с индексом 1, вторая строка данных — индекс 2, вторая строка данных — индекс 3)td.email— ячейка с классомemail
Альтернативные варианты:
#users-table tr:nth-of-type(3) td.email— более надёжный вариант, считает толькоtrэлементыtable#users-table tbody tr:nth-child(2) td.email— если бы была явнаяtbody(в примере её нет)
Best Practices для автоматизации:
- Избегай зависимости от позиции —
:nth-child()хрупкий селектор - Используй уникальные ID и классы — это более надёжные якоря
- Предпочитай data-атрибуты —
[data-testid="email"]лучше, чем класс - Тестируй селектор перед использованием — в DevTools браузера
Похожие вопросы
- Сумма элементов массива
- Определение цикла в связном списке
- Написать автотест на вход в систему
- Преобразование числа в римское
- Проверка палиндрома
- K-й элемент с конца списка
- Поиск пиковых элементов
- Каждый N-й элемент
- Реверс слов в предложении
- Поиск дубликатов в массиве
- Среднее арифметическое
- Генерация всех правильных скобочных последовательностей
- Две суммы
- Сортировка пузырьком
- Тестирование формы регистрации
- Наибольший общий делитель
- Второй по величине элемент
- Проверка на подпоследовательность
- SQL запрос с JOIN
- Общие элементы двух массивов