《最新出爐》系列初窺篇-Python+Playwright自動化測試-37-如何截圖-上篇

1.簡介

這個系列的文章也講解和分享了差不多三分之一吧,突然有小夥伴或者童鞋們問道playwright有沒有截圖的方法。答案當然是:肯定有的。宏哥回過頭來看看確實這個非常基礎的知識點還沒有講解和分享。那麼在這個契機下就把它插隊分享和講解一下。Playwright提供了一個截屏的API:page.screenshot。使用該API,只需要指定截圖的圖片的保存路徑及文件名即可。如果僅指定文件名,默認保存在當前目錄。

2.截圖語法

截圖介紹官方API的文檔地址:https://playwright.dev/python/docs/screenshots

2.1截圖參數

screenshot方法可以進行截圖,參數如下:

timeout:以毫秒爲單位的超時時間,0爲禁用超時

path:設置截圖的路徑

type:圖片類型,默認jpg

quality:像素,不適用於jpg

omit_background: 隱藏默認白色背景,並允許捕獲具有透明度的屏幕截圖。不適用於“jpeg”圖像。

full_page:如果爲true,則獲取完整可滾動頁面的屏幕截圖,而不是當前可見的視口。默認爲

`假`。

clip:指定結果圖像剪裁的對象clip={'x': 10 , 'y': 10, 'width': 10, 'height': 10}

3.快速截圖(截取當前屏幕)

playwright除了可以截取當前屏幕,還可以截長圖,也可以對某個元素截圖,是不是炒雞方便。這是捕獲屏幕截圖並將其保存到文件中的快速截圖(如果僅僅截取當前屏幕(瀏覽器)上能看到的部分)語法如下:

page.screenshot(path="screenshot.png")

3.1實戰示例

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2023-11-23
@author: 北京-宏哥
公衆號:北京宏哥
Project: 《最新出爐》系列初窺篇-Python+Playwright自動化測試-36-如何截圖
'''

# 3.導入模塊
from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:

    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.screenshot(path='a.png')  # 截圖
    print(page.title())
    page.wait_for_timeout(1000)
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

3.2運行代碼

1.運行代碼,右鍵Run'Test',就可以看到截圖和控制檯輸出,如下圖所示:

2.運行代碼後電腦端的瀏覽器的動作。如下圖所示:

4.整頁截圖(截取整個頁面)

有時候,頁面可能會比較長,一個屏幕無法全部展示出來。如果想截取整個頁面,怎麼辦呢?設置full_page=True 參數 screenshot 是一個完整的可滾動頁面的屏幕截圖,就好像你有一個非常高的屏幕並且頁面可以完全容納它。

playwright屏幕截圖語法如下:

page.screenshot(path="screenshot.png", full_page=True)

4.1實戰示例

# coding=utf-8🔥

# 1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

# 2.註釋:包括記錄創建時間,創建人,項目名稱。
'''
Created on 2023-11-23
@author: 北京-宏哥
公衆號:北京宏哥
Project: 《最新出爐》系列初窺篇-Python+Playwright自動化測試-36-如何截圖
'''

# 3.導入模塊
from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:

    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com/")
    page.screenshot(path="screenshot.png", full_page=True) # 截圖
    print(page.title())
    page.wait_for_timeout(1000)
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

4.2運行代碼

1.運行代碼,右鍵Run'Test',就可以看到截圖和控制檯輸出,如下圖所示:

2.運行代碼後電腦端的瀏覽器的動作。如下圖所示:

5.小結

 好了,今天時間不早了,關於playwright的截圖就先介紹講解到這裏,下一篇繼續介紹截圖的其他操作方法。感謝您耐心的閱讀!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章