頁面物件模型
簡介
大型測試套件可以組織化,以最佳化撰寫和維護的便利性。頁面物件模型是其中一種組織測試套件的方法。
頁面物件代表您的 Web 應用程式的一部分。電子商務 Web 應用程式可能具有首頁、商品列表頁面和結帳頁面。它們中的每一個都可以用頁面物件模型來表示。
頁面物件透過建立更高等級的 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")