from playwright.sync_api import sync_playwright, expect def run(playwright): browser = playwright.chromium.launch(headless=False) context = browser.new_context() # 開啟新頁面 page = context.new_page() # 導航到示例頁面 page.goto("https://example.com") # 斷言頁面標題 expect(page).to_have_title("Example Domain") # 斷言 h1 文字內容 expect(page.locator('h1')).to_have_text('Example Domain') # 斷言元素可見 expect(page.locator('text="More information..."')).to_be_visible() # 斷言元素不可見 # 假設頁面上有一個隱藏的元素,ID為hidden-element # expect(page.locator('#hidden-element')).not_to_be_visible() # 斷言元素屬性 # 假設頁面上有一個按鈕,ID為submit-button,其屬性為disabled # expect(page.locator('#submit-button')).to_have_attribute('disabled', 'true') # 斷言元素數量 # 假設頁面上有三個div元素,類名為item # expect(page.locator('div.item')).to_have_count(3) # 斷言 URL expect(page).to_have_url('https://example.com') # 斷言輸入框的值 # 假設頁面上有一個輸入框,名稱為username,其值為testuser # expect(page.locator('input[name="username"]')).to_have_value('testuser') # 斷言元素的 CSS 屬性 # 假設頁面上有一個按鈕,其背景顏色為rgb(0, 123, 255) # expect(page.locator('button')).to_have_css('background-color', 'rgb(0, 123, 255)') # 斷言元素可編輯 # 假設頁面上有一個輸入框 # expect(page.locator('input')).to_be_editable() # 斷言核取方塊已選中 # 假設頁面上有一個核取方塊 # expect(page.locator('input[type="checkbox"]')).to_be_checked() # 關閉上下文和瀏覽器 context.close() browser.close() with sync_playwright() as playwright: run(playwright)