頁面物件模型
簡介
大型測試套件可以被組織化,以優化撰寫和維護的便利性。頁面物件模型是組織測試套件的一種方法。
頁面物件代表您的網路應用程式的一部分。一個電子商務網路應用程式可能會有首頁、商品列表頁和結帳頁。它們每一個都可以用頁面物件模型來表示。
頁面物件透過建立更高等級、適合您應用程式的 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")
models/search.py
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")
然後,頁面物件可以在測試內部使用。
- 同步
- 非同步
test_search.py
from models.search import SearchPage
# in the test
page = browser.new_page()
search_page = SearchPage(page)
search_page.navigate()
search_page.search("search query")
test_search.py
from models.search import SearchPage
# in the test
page = await browser.new_page()
search_page = SearchPage(page)
await search_page.navigate()
await search_page.search("search query")