随笔 - 44  文章 - 0  评论 - 2  阅读 - 53295 
复制代码
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

 

posted on   木木-林  阅读(3692)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示