91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python?playwright自動等待和斷言舉例分析

發布時間:2021-11-26 16:27:49 來源:億速云 閱讀:561 作者:iii 欄目:開發技術

本篇內容主要講解“python playwright自動等待和斷言舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python playwright自動等待和斷言舉例分析”吧!

    自動等待及元素執行方法

    操作元素的一系列方法,只要調用了測試夾函數page,就能引出操作元素的方法:

    import pytest
    from playwright.sync_api import Page
    def test_example(page: Page):
        page.goto("https://www.baidu.com")
        page.hover('//*[@id="u1"]/*[text()="設置"]')
        page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索設置"]')
        page.set_checked('//*[text()="全部語言"]', False)
        assert page.title() == "百度一下,你就知道"
        page.close()
    if __name__ == '__main__':
        pytest.main(["-v", "test_example.py"])

    playwright對元素執行前,會進行一系列可操作性檢查,以確保這些行動按預期運行。它會自動等待所有相關檢查通過,然后才執行請求的操作。如果所需的檢查未在給定的范圍內通過則拋出timeout,操作將失敗并顯示TimeoutError。

    • 執行方法如下:

    鼠標雙擊

    page.dblclick()

    獲取元素焦點

    # 獲取元素并聚焦它。 如果沒有匹配的元素,則方法等待匹配元素出現在 DOM 中。
        page.focus('#su')

    鼠標懸停

    # 就是鼠標放在按鈕上,此方法針對那種浮框操作
        page.hover('//*[@id="u1"]/*[text()="設置"]')

    鼠標點擊

    page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索設置"]')

    設置復選框取消或選中

    page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索設置"]')

    取消已選中復選框取

    # 確保元素是復選框或單選框。如果該元素已取消選中,則此方法立即返回
        page.uncheck('//*[text()="僅簡體中文"]')

    輸入參數

    # 此方法是聚焦元素,input輸入值后觸發事件。您也可以傳遞一個空字符串來清除輸入字段。
        page.fill("#kw", "秦時明月")

    獲取元素屬性值

    # 返回元素屬性值
        page.get_attribute('#kw', 'name')

    獲取內部文本

    page.inner_text('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]//*[@class="title-content-title"]')

    獲取內部HTML

    page.inner_html('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]')

    獲取文本內容

    page.text_content('//*[@id="s-hotsearch-wrapper"]//*[@data-index="2"]')

    截圖

    # baidu.png存放至當前文件夾下的cases文件夾種
        page.screenshot(path='./cases/baidu.png')

    填寫文本并觸發鍵盤事件

    # 為文本中的每個字符發送一個keydown、keypress/input和keyup事件。
        page.type("#kw", "hello")

    輸入鍵盤操作

    # 獲取按鈕元素,輸入鍵盤操作
        page.press('#su', 'Enter')

    設置select下拉選項

    # 與值匹配的單個選擇
        page.select_option(\"select#colors\", \"blue\")
        # 與標簽匹配的單個選擇
        page.select_option(\"select#colors\", label=\"blue\")
        # 多項選擇
        page.select_option(\"select#colors\", value=[\"red\", \"green\", \"blue\"])

    調度事件

       # type可傳:"click", "dragstart"
        page.dispatch_event('#su', 'click')

    檢查點(斷言)

    文字內容斷言

    # 獲取文本內容,進行斷言
        content = page.text_content('[target="_blank"]:first-child')
        assert content == "新聞"

    內部文字斷言

    # 獲取內部文字,進行斷言
        text = page.inner_text('[target="_blank"]:first-child')
        assert text == "新聞"

    屬性斷言

    # 獲取屬性值,進行斷言
        attribute = page.get_attribute('#su', 'value')
        assert attribute == "百度一下"

    復選框斷言

    page.hover('//*[@id="u1"]/*[text()="設置"]')
        page.click('//*[@id="s-user-setting-menu"]//*[text()="搜索設置"]')
        # 復選框狀態,進行斷言
        checked = page.is_checked('//*[text()="全部語言"]')
        assert checked

    js表達式斷言

    # JS表達式,進行斷言
        js_content = page.locator('[data-index="4"]>a>[class="title-content-title"]').text_content()
        assert js_content == "長津湖超戰狼2成中國影史票房冠軍"

    內部HTML斷言

    # 內部 HTML ,進行斷言
        html = page.inner_html('[class="hot-title"]')
        assert "百度熱搜" in html

    元素可見斷言

    # 元素可見性 ,進行斷言
        visible = page.is_visible('#su')
        assert visible

    啟動狀態斷言

    # 啟用狀態(元素存在可點擊) ,進行斷言
        enabled = page.is_enabled('#su')
        assert enabled

    直接對比斷言

    assert page.title() == "百度一下,你就知道"

    playwright還提供了自定義斷言,這一塊我還沒有實操過,有興趣可的可繼續研究下:

    # 斷言本地存儲值
    user_id = page.evaluate("() => window.localStorage.getItem('user_id')")
    assert user_id
    # 斷言輸入元素的值
    value = page.locator('#search').input_value()
    assert value == 'query'
    # 斷言計算樣式
    font_size = page.locator('div').evaluate('el => window.getComputedStyle(el).fontSize')
    assert font_size == '16px'
    # 斷言列表長度
    length = page.locator('li.selected').count()
    assert length == 3

    到此,相信大家對“python playwright自動等待和斷言舉例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    涪陵区| 上虞市| 许昌市| 公主岭市| 松滋市| 始兴县| 乐都县| 定结县| 廉江市| 西丰县| 铁力市| 科技| 晋江市| 包头市| 鹤壁市| 阿荣旗| 江永县| 阿尔山市| 嘉鱼县| 灵山县| 巴东县| 石屏县| 抚松县| 濉溪县| 汝州市| 新蔡县| 仪陇县| 栖霞市| 湛江市| 嘉善县| 共和县| 垫江县| 辽阳市| 留坝县| 上饶市| 乌拉特后旗| 伊吾县| 清水县| 南安市| 富顺县| 广宗县|