最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Playwright中Assertions斷言的方法實現(xiàn)

 更新時間:2026年01月23日 10:26:44   作者:精靈靈怪  
在編寫測試時,我們使用assert語句來斷言一段條件并以此為基礎(chǔ)條件,我們要么通過測試,要么不通過測試,Playwright給我們提供了另一個API,可以以一種更易讀的方式用來執(zhí)行相同的判斷

在編寫測試時,我們使用assert語句來斷言一段條件并以此為基礎(chǔ)條件,我們要么通過測試,要么不通過測試。Playwright給我們提供了另一個API,可以以一種更易讀的方式用來執(zhí)行相同的判斷。

1. Page Assertions

from playwright.sync_api import Page, expect


DOCS_URL = "https://playwright.dev/python/docs/intro"


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    link = page.get_by_role("link", name="GET STARTED")
    link.click()

   # Page Assertions
    # assert page.url == DOCS_URL
    expect(page).to_have_url(DOCS_URL)
    expect(page).to_have_title("Installation | Playwright Python")

Run:

2. Element State Assertions

from playwright.sync_api import Page, expect


DOCS_URL = "https://playwright.dev/python/docs/intro"


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    link = page.get_by_role("link", name="GET STARTED")
    # Not exist in UI
    link_not = page.get_by_role("link", name="GET Python")

    expect(link).to_be_visible()
    expect(link).to_be_enabled()
    expect(link_not).not_to_be_visible()
    expect(link_not).to_be_hidden()
    link.click()

Run:

注意,link_not 在頁面上不存在,如果使用expect(link_not ).to_be_visible(),報錯如下:

3. Inner Text Assertions

3.1 Heading

from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    heading = page.locator("h1.hero__title")

    # Inner Text Assertions
    expect(heading).to_contain_text("testing")
    expect(heading).to_have_text(("Playwright enables reliable end-to-end testing for modern web apps."))

3.2 Dropdown list

from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    dropdown_menu = page.locator("ul.dropdown__menu")

    # Inner Text Assertions
    expect(dropdown_menu).to_contain_text("Python")
    expect(dropdown_menu).to_contain_text("Java")
    expect(dropdown_menu).to_contain_text("Node.js")
    expect(dropdown_menu).to_contain_text(".NET")

Run All:

4. Attribute Assertions

4.1 class

from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    docs_link = page.get_by_role("link", name="Docs")

    expect(docs_link).to_have_class("navbar__item navbar__link")

Run:

如果只想check或expect一個元素的一個class,則必須使用正則表達(dá)式。
如果還是使用上面的寫法,修改為expect(docs_link).to_have_class("navbar__link")
Run:

所以,正確的寫法如下:

import re
from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    docs_link = page.get_by_role("link", name="Docs")

    expect(docs_link).to_have_class(
        re.compile(r"navbar__link")
    )

現(xiàn)在可以在這個模式中使用所有的正則表達(dá)式語法。
假設(shè)這個類應(yīng)該從navbar __item開始,那我們的寫法應(yīng)為:re.compile(r"^navbar__item")

4.2 id

我們也可以expect元素ID:expect(docs_link).to_have_id("playwright")。

4.3 attribute

from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    docs_link = page.get_by_role("link", name="Docs")

    expect(docs_link).to_have_attribute(
        "href", "/python/docs/intro"
    )

5. Input Field Assertions

from playwright.sync_api import Page, expect


def test_get_started_link(page: Page):
    page.goto("https://playwright.dev/python")

    input = page.get_by_placeholder("Search docs")

    # input is hidden before button click
    expect(input).to_be_hidden()

    # Search button
    search_button = page.get_by_role("button", name="Search")
    search_button.click()

    # should pop the search menu
    expect(input).to_be_editable()
    expect(input).to_be_empty()

    # type some query in the input
    query = "assertions"
    input.fill(query)

    # check input value
    expect(input).to_have_value(query)

Run:

6. Checkbox Assertions

from playwright.sync_api import Page, expect


def test_app(page: Page):
    page.goto("https://bootswatch.com/default/")

    checked_checkbox = page.get_by_label("Checked checkbox")
    default_checkbox = page.get_by_label("Default checkbox")

    expect(checked_checkbox).to_be_checked()
    expect(default_checkbox).not_to_be_checked()

7. Option Assertions

from playwright.sync_api import Page, expect


def test_app(page: Page):
    page.goto("https://bootswatch.com/default/")

    option_menu = page.get_by_label("Example select")

    expect(option_menu).to_have_value("1")

    multi_option_menu = page.get_by_label("Example multiple select")

    multi_option_menu.select_option(["2", "4"])

    expect(multi_option_menu).to_have_values(["2", "4"])

到此這篇關(guān)于Playwright中Assertions斷言的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Playwright Assertions斷言內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3.7下安裝pyqt5的方法步驟(圖文)

    Python3.7下安裝pyqt5的方法步驟(圖文)

    這篇文章主要介紹了Python3.7下安裝pyqt5的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python 識別圖片中的文字信息方法

    python 識別圖片中的文字信息方法

    今天小編就為大家分享一篇python 識別圖片中的文字信息方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Pycharm報錯Non-zero?exit?code?(2)的完美解決方案

    Pycharm報錯Non-zero?exit?code?(2)的完美解決方案

    最近在使用pycharm安裝或升級模塊時出現(xiàn)了錯誤,下面這篇文章主要給大家介紹了關(guān)于Pycharm報錯Non-zero?exit?code?(2)的完美解決方案,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 九個Python列表生成式高頻面試題匯總

    九個Python列表生成式高頻面試題匯總

    本文為大家整理了九個Python列表生成式的面試題(從簡單到困難排序),可以幫助大家提高列表生成式的理解水平,感興趣的小伙伴可以學(xué)習(xí)一下
    2022-05-05
  • python使用fastapi實現(xiàn)多語言國際化的操作指南

    python使用fastapi實現(xiàn)多語言國際化的操作指南

    本文介紹了使用Python和FastAPI實現(xiàn)多語言國際化的操作指南,包括多語言架構(gòu)技術(shù)棧、翻譯管理、前端本地化、語言切換機(jī)制以及常見陷阱和最佳實踐,需要的朋友可以參考下
    2025-02-02
  • python獲取遠(yuǎn)程圖片大小和尺寸的方法

    python獲取遠(yuǎn)程圖片大小和尺寸的方法

    這篇文章主要介紹了python獲取遠(yuǎn)程圖片大小和尺寸的方法,實例分析了Python中urllib2.urlopen方法及圖片操作技巧,需要的朋友可以參考下
    2015-03-03
  • Python處理PPT文件的實用知識點總結(jié)

    Python處理PPT文件的實用知識點總結(jié)

    python是一門很強(qiáng)大的語言,因為有著豐富的第三方庫,所以可以說Python是無所不能的,下面這篇文章主要給大家介紹了關(guān)于用Python提取PPT中圖片的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • PyQt5實現(xiàn)五子棋游戲(人機(jī)對弈)

    PyQt5實現(xiàn)五子棋游戲(人機(jī)對弈)

    這篇文章主要為大家詳細(xì)介紹了PyQt5實現(xiàn)五子棋游戲,人機(jī)對弈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 簡單了解Python下用于監(jiān)視文件系統(tǒng)的pyinotify包

    簡單了解Python下用于監(jiān)視文件系統(tǒng)的pyinotify包

    這篇文章主要介紹了Python下用于監(jiān)視文件系統(tǒng)的pyinotify包,pyinotify基于inotify事件驅(qū)動機(jī)制,需要的朋友可以參考下
    2015-11-11
  • Python中方法的缺省參數(shù)問題解讀

    Python中方法的缺省參數(shù)問題解讀

    這篇文章主要介紹了Python中方法的缺省參數(shù)問題解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評論

莱西市| 陵川县| 昔阳县| 鲁甸县| 铜山县| 寻乌县| 衡阳县| 常德市| 会同县| 龙州县| 许昌市| 泉州市| 伊金霍洛旗| 合川市| 静乐县| 达日县| 定结县| 铅山县| 开原市| 沙田区| 西昌市| 上高县| 邢台市| 大足县| 民和| 祥云县| 岳阳市| 南投市| 常宁市| 维西| 钟祥市| 通州市| 大方县| 绥棱县| 嘉黎县| 金山区| 丹寨县| 武强县| 靖安县| 孝昌县| 衡南县|