playwright的一些断言

复制代码
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)
复制代码

 

posted @   苦逼小李  阅读(356)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示