前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件测试|web自动化测试神器playwright教程(七)

软件测试|web自动化测试神器playwright教程(七)

原创
作者头像
霍格沃兹测试开发Muller老师
发布2023-03-30 18:09:41
7480
发布2023-03-30 18:09:41
举报
文章被收录于专栏:muller的测试分享

前言

有时候我们需要通过屏幕截图来验证我们测试是否正常执行,selenium提供了截图的功能,我们可以截取当前整个屏幕的内容,playwright更加强大,除了截取当前屏幕,还可以截长图,也可以对某个元素截图。

下面我们就分别来介绍一下playwright截取当前屏幕,截取长图以及截取某个元素。

screenshot 截图

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

代码语言:python
代码运行次数:0
复制
page.screenshot(path="screenshot.png")

使用示例

代码语言:python
代码运行次数:0
复制
from playwright.sync_api import sync_playwright


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 是一个完整的可滚动页面的屏幕截图,就好像你有一个非常高的屏幕并且页面可以完全容纳它。

代码语言:python
代码运行次数:0
复制
page.screenshot(path="screenshot.png", full_page=True)

完整代码如下:

代码语言:python
代码运行次数:0
复制
from playwright.sync_api import sync_playwright


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)

截取的图像如下:

在这里插入图片描述
在这里插入图片描述

捕获图片数据流

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

代码语言:python
代码运行次数:0
复制
screenshot_bytes = page.screenshot()
print(base64.b64encode(screenshot_bytes).decode())

截取单个元素

除了截取整个当前页面,或者截取长图,playwright还支持截取元素,截取方法如下:

代码语言:python
代码运行次数:0
复制
page.locator(".header").screenshot(path="screenshot.png")

例如截图百度首页的form 表单输入框和搜索按钮

代码语言:python
代码运行次数:0
复制
from playwright.sync_api import sync_playwright



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")
    page.locator(".form").screenshot(path="screenshot.png")

截图效果如下:

在这里插入图片描述
在这里插入图片描述

总结

本文主要讲解了playwright的截图操作,比起selenium,playwright的截图功能更加强大,更加方便使用,这也是playwright相对于selenium的强大优势。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • screenshot 截图
      • 截取长图
        • 捕获图片数据流
          • 截取单个元素
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档