⚡ Шпаргалка
page.get_by_role("button", name="OK").click()
page.get_by_label("Email").fill("a@b.com")
page.get_by_role("listitem").filter(has_text="X").nth(0)
expect(page.locator(".msg")).to_have_text("Готово")
Локаторы
| Локатор | Назначение |
get_by_role(role, name=...) | По ARIA-роли (button, link, checkbox, heading…) |
get_by_text(text, exact=False) | По видимому тексту |
get_by_label(text) | Поле формы по связанному label |
get_by_placeholder(text) | По placeholder |
get_by_alt_text(text) | Картинка по alt |
get_by_title(text) | По атрибуту title |
get_by_test_id(id) | По data-testid |
locator("css") / locator("//xpath") | CSS / XPath — крайний случай |
Уточнение локаторов
| Метод | Назначение |
.filter(has_text=...) | Оставить элементы с текстом |
.filter(has_not_text=...) | Исключить элементы с текстом |
.filter(has=locator) | Оставить содержащие вложенный элемент |
.nth(i) / .first / .last | Выбор по индексу |
.get_by_role(...) (цепочкой) | Поиск внутри найденного |
Действия
| Метод | Назначение |
click() / dblclick() | Клик / двойной клик |
fill(text) | Ввести в поле (очистив) |
type(text) / press_sequentially(text) | Посимвольный ввод |
check() / uncheck() | Чекбокс / радио |
select_option(value) | Выбор в select |
press("Enter") | Клавиша |
hover() | Навести курсор |
Матчеры expect()
| Матчер | Проверяет |
to_be_visible() / to_be_hidden() | Видимость |
to_have_text(t) / to_contain_text(t) | Текст |
to_have_value(v) | Значение поля |
to_have_count(n) | Количество элементов |
to_be_enabled() / to_be_checked() | Доступность / состояние чекбокса |
to_have_attribute(name, value) | Атрибут |