Модели объектов страницы
Введение
Большие наборы тестов могут быть структурированы для оптимизации простоты написания и поддержки. Модели объектов страницы – это один из подходов к структурированию вашего набора тестов.
Объект страницы представляет собой часть вашего веб-приложения. Например, в веб-приложении для электронной коммерции может быть главная страница, страница со списками и страница оформления заказа. Каждая из них может быть представлена моделями объектов страницы.
Объекты страницы упрощают написание тестов, создавая API более высокого уровня, который подходит для вашего приложения, и упрощают поддержку, фиксируя селекторы элементов в одном месте и создавая многократно используемый код для избежания повторений.
Реализация
Модели объектов страницы оборачиваются вокруг Playwright Page.
- Sync
- Async
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")
class SearchPage:
def __init__(self, page):
self.page = page
self.search_term_input = page.locator('[aria-label="Enter your search term"]')
async def navigate(self):
await self.page.goto("https://bing.com")
async def search(self, text):
await self.search_term_input.fill(text)
await self.search_term_input.press("Enter")
Объекты страницы затем могут быть использованы внутри теста.
- Sync
- Async
from models.search import SearchPage
# в тесте
page = browser.new_page()
search_page = SearchPage(page)
search_page.navigate()
search_page.search("search query")
from models.search import SearchPage
# в тесте
page = await browser.new_page()
search_page = SearchPage(page)
await search_page.navigate()
await search_page.search("search query")