国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python playwright 自動等待和斷言詳解

python playwright 自動等待和斷言詳解

2022-03-09 00:05一名小測試 Python

這篇文章主要為大家介紹了python playwright 自動等待和斷言,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

自動等待及元素執行方法

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

?
1
2
3
4
5
6
7
8
9
10
11
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。

  • 執行方法如下:

鼠標雙擊

?
1
page.dblclick()

獲取元素焦點

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

鼠標懸停

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

鼠標點擊

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

設置復選框取消或選中

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

取消已選中復選框取

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

輸入參數

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

獲取元素屬性值

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

獲取內部文本

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

獲取內部HTML

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

獲取文本內容

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

截圖

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

填寫文本并觸發鍵盤事件

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

輸入鍵盤操作

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

設置select下拉選項

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

調度事件

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

檢查點(斷言)

文字內容斷言

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

內部文字斷言

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

屬性斷言

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

復選框斷言

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

js表達式斷言

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

內部HTML斷言

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

元素可見斷言

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

啟動狀態斷言

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

直接對比斷言

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
# 斷言本地存儲值
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

總結

playwright增加了自動等待,這樣就能把用例批量運行的穩定性提升上去了,對斷言的操作相比selenium來說也比較容易上手一些。

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/LIFENG0402/article/details/121550064

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色版视频在线观看 | 久久精品国产久精国产 | 国产中文字幕在线 | 99视频精品在线 | 成人国产精品视频 | 亚洲美腿 欧美 激情 另类 | 成人在线播放网站 | 国产美女自拍视频 | 一区视频在线播放 | 婷婷精品久久久久久久久久不卡 | 欧美日韩中文在线观看 | 一区二区三区日本 | 国产成人精品一区二区三区网站观看 | 超碰成人在线免费 | 伊人精品在线 | 一区二区三区国产视频 | 日韩欧美在线免费观看 | 精品在线一区二区 | 九一精品国产 | 这里只有精品视频 | 亚洲三区视频 | 精久久久 | 999一个人免费看ww | 久久三区| 日本久久精品视频 | 国产精品色一区二区三区 | 日韩毛片一区二区三区 | 亚洲精品在线观看网站 | 成人在线国产 | 欧洲一区二区三区 | 日韩综合一区 | 久久精品国产清自在天天线 | 国产精品99久久久久久动医院 | 中文字幕一区二区三区四区五区 | 日韩欧美国产综合 | 国产亚洲精品久久久久久 | 在线一区二区三区 | 欧美精品一区二区三区在线 | 国产精品毛片久久久久久久 | 国产在线不卡观看 | 黄在线 |