Перейти к основному содержимому

Модели объектов страницы

Введение

Большие наборы тестов могут быть структурированы для оптимизации простоты написания и поддержки. Модели объектов страницы – это один из подходов к структурированию вашего набора тестов.

Объект страницы представляет собой часть вашего веб-приложения. Например, в веб-приложении для электронной коммерции может быть главная страница, страница со списками и страница оформления заказа. Каждая из них может быть представлена моделями объектов страницы.

Объекты страницы упрощают написание тестов, создавая API более высокого уровня, который подходит для вашего приложения, и упрощают поддержку, фиксируя селекторы элементов в одном месте и создавая многократно используемый код для избежания повторений.

Реализация

Модели объектов страницы оборачиваются вокруг Playwright Page.

models/search.py
class SearchPage:
def __init__(self, page):
self.page = page
self.search_term_input = page.locator('[aria-label="Enter your search term"]')

def navigate(self):
self.page.goto("https://bing.com")

def search(self, text):
self.search_term_input.fill(text)
self.search_term_input.press("Enter")

Объекты страницы затем могут быть использованы внутри теста.

test_search.py
from models.search import SearchPage

# в тесте
page = browser.new_page()
search_page = SearchPage(page)
search_page.navigate()
search_page.search("search query")