from playwright.sync_api import sync_playwright import time import os # print(dirpath) with sync_playwright() as p: for i in [p.chromium, p.firefox]: browser = i.launch(headless=False) page = browser.new_page() page.goto("https://www.baidu.com") page.screenshot(path='a.png') #截圖 print(page.title()) browser.close()
快速截圖:
screenshot方法可以進行截圖,參數如下:
timeout:以毫秒為單位的超時時間,0為禁用超時
path:設置截圖的路徑
type:圖片類型,默認jpg
quality:像素,不適用於jpg
omit_background: 隱藏默認白色背景,並允許捕獲具有透明度的屏幕截圖。不適用於“jpeg”圖像。
full_page:如果為true,則獲取完整可滾動頁面的屏幕截圖,而不是當前可見的視口。默認為
`假`。
clip:指定結果圖像剪裁的對象clip={'x': 10 , 'y': 10, 'width': 10, 'height': 10}
按照元素截圖
參數同上,只是調用截圖方法的對象不同,快速截圖是page,按照元素截圖是page下的元素
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("https://www.baidu.com") element_handle = page.query_selector("//div[@id='lg']") #按照元素截圖 element_handle.screenshot(path="screenshot.png")
如果元素沒找到會提示錯誤:AttributeError: 'NoneType' object has no attribute 'screenshot'
捕捉到緩沖區
https://playwright.dev/python/docs/screenshots