首页 > 编程语言 >python+playwright 学习-6.截图使用

python+playwright 学习-6.截图使用

时间:2023-02-21 22:47:00浏览次数:36  
标签:截图 playwright screenshot python sync context page

前言

playwright 除了可以截取当前屏幕,还可以截长图,也可以对某个元素截图,这点非常棒。

screenshot 截图

这是捕获屏幕截图并将其保存到文件中的快速方法:

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

使用示例

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    context = browser.new_context()  # 创建上下文,浏览器实例1

    page = context.new_page()    # 打开标签页
    page.goto("https://www.baidu.com/")
    print(page.title())
    page.screenshot(path="screenshot.png")

于是就可以看到截图了

截长图

设置full_page=True 参数 screenshot 是一个完整的可滚动页面的屏幕截图,就好像你有一个非常高的屏幕并且页面可以完全容纳它。

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

捕获图片数据流

您可以获取包含图像的缓冲区并对其进行后处理或将其传递给第三方像素差异工具,而不是写入文件。

screenshot_bytes = page.screenshot()
print(base64.b64encode(screenshot_bytes).decode())

截取单个元素

有时截取单个元素的屏幕截图很有用

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

使用示例,截图百度页面的form 表单输入框和搜索按钮

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479  
# blog:https://www.cnblogs.com/yoyoketang/


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    context = browser.new_context()  # 创建上下文,浏览器实例1

    page = context.new_page()    # 打开标签页
    page.goto("https://www.baidu.com/")
    print(page.title())
    page.screenshot(path="screenshot.png")

于是最终截图效果

标签:截图,playwright,screenshot,python,sync,context,page
From: https://www.cnblogs.com/yoyoketang/p/17142776.html

相关文章

  • Python 多线程中的 Join Lock 和 Event
    Join函数的作用Join函数的作用主要是提供当前线程阻塞,等待线程结束后,在执行下一个线程,保护线程通畅有序执行如下当没有使用join时,主线程结束了子线程还在运行defd......
  • python-基础:线程
    3.线程安全一个线程中可以有多个子线程,且线程可以共享进程中所有的资源多个线程去操作一份资源,高概率性的发生数据混乱的情况,如下:示例importthreadingloop=1000......
  • python-requests出现InsecureRequestWarning错误
    使用Python3requests库发送HTTPS请求,verify=False已经关闭认证情况下,控制台会输出以下warning在代码中添加以下内容即可requests.packages.urllib3.disable_warnings()......
  • python+playwright 学习-5.new_context上下文与新窗口操作
    前言browser.new_context()创建一个新的浏览器上下文。它不会与其他浏览器上下文共享cookies/缓存。浏览器上下文使用browser.new_context()创建context对象,context......
  • QPython实例03-制作【ONE一个】可视化应用
    一、前言QPython3c在大佬的改进下,拥有了基于sl4a的FullScreenWrapper2全屏框架。文章将用该框架制作我们的可视化应用【ONE一个】。二、最终效果如下三、准备工作AI......
  • Python paramiko的简单使用
    paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输、中间SSH代理等功能,相对于Pexpect,封装的层次更高,更贴近SSH协议的功......
  • python学习——【第十一弹】
    前言上一篇文章 ​​python学习——【第十弹】​​中介绍了python中类的相关属性和方法,这篇文章接着学习python中的浅拷贝,下一篇文章为大家介绍深拷贝。简单了解浅拷贝......
  • python和pycharm的安装与使用
    Python如何下载与安装?最新版本不具备最好的兼容性与稳定性 系统解释器建议一个版本的就行 建议安装3.7-3.10之间的版本 安装时注意你的操作系统的位数64位操作系......
  • 在用python调用emqx的API时遇到数据格式转换问题
    获取的response的格式是bytes的数据类型,我需要转化成字符串或者字典使用,这里复习一下下面几个函数1.json->stringstr=json.dumps(json_type)2.bytes->stringstr=......
  • Python的多进程和多线程
    前言:为什么有人说Python的多线程是鸡肋,不是真正意义上的多线程? 看到这里,也许你会疑惑。这很正常,所以让我们带着问题来阅读本文章吧。问题:1.什么是python......