Выбор ответа Middle Локаторы обновлено

contains(@class) и похожие классы

Вопрос

Что найдёт //button[contains(@class, "btn")]?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Кнопки с подстрокой btn в class, включая btn-primary и submit-btn. contains ищет подстроку во всей строке атрибута, поэтому совпадут и btn-primary, и submit-btn.

Варианты ответа

  1. Кнопки, у которых класс ровно btn, без других классов
  2. Кнопки, у которых среди классов есть отдельный класс btn
  3. Ничего: contains нельзя применять к атрибутам, нужен text()
  4. Кнопки с подстрокой btn в class, включая btn-primary и submit-btnправильный ответ

Разбор

contains ищет подстроку во всей строке атрибута, поэтому совпадут и btn-primary, и submit-btn. Точное совпадение класса: contains(concat(" ", normalize-space(@class), " "), " btn "). К атрибутам contains применять можно.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме