playwright的一些斷言

苦逼小李發表於2024-06-26
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)

相關文章