首页 > 解决方案 > 将图像转换为 base64 字符串的应用程序在有头和无头模式下运行时会在浏览器的控制台上显示不同的结果。有谁知道为什么?

问题描述

我正在使用 Playwright 为 Node.js 应用程序编写自动化测试。该应用程序有一个带有按钮的测试网页,该按钮允许手动选择图像,然后将处理并转换为 base64 字符串,该字符串将记录在浏览器的控制台上以进行验证。我正在编写的自动化测试模拟手动操作,然后将控制台中记录的 base64 字符串与保存在文件中的另一个字符串进行比较。

FileReader 类使用 readAsDataURL() 方法(此处的文档)将图像解码为 base64,如下面的代码片段所示:

            reader.onload = () => {
                EXIF.getData(file, () => {
                    const imageBase64 = reader.result

                    // more code here
                })
            }

            reader.readAsDataURL(file)

我面临的问题是,当测试使用 Chrome 浏览器运行时,base64 与使用 Chrome 无头浏览器运行时不同,即使图像相同。有谁知道为什么?

标签: node.jsgoogle-chromeautomated-testsgoogle-chrome-headlessplaywright

解决方案


推荐阅读