问题标签 [jest-puppeteer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1734 浏览

axios - puppeteer - 检查负载为 FormData 的 POST 请求

我在 React 中有一个看起来像这样的过程:

当一个按钮被点击时,一些数据被编译为 FormData,然后在一个 POST 请求中作为负载发送到一个 API。

在我的 Jest/Puppeteer 测试中,我试图确认请求包含它应该包含的数据:

在这种情况下request.postData()undefined。Puppeteer 中是否有某种方法可以检查有效负载是FormData结构的 POST 请求的内容?

在 Chrome 中运行该进程时,我可以通过 Chrome devtools 看到网络请求中显示的 FormData,所以我知道数据正在发送,但我想断言它。

0 投票
1 回答
944 浏览

javascript - 使用 Puppeteer 重新加载 Jest 后检查页面内容

我正在开发一个类似于 live-reload/browser-sync 的 nodejs 库,并且我正在使用jest-puppeteer进行自动化测试。

当我手动测试我的库,打开浏览器并修改文件时,,页面会刷新(通过注入的代码,location.reload( true )当它通过 websocket 接收到信号时运行)。

但是当我用 Jest 运行测试时,Puppeteer 似乎没有得到刷新。

在最后一次测试中,我没有收到New title(在文件中正确写入index.html),我仍然收到Old title

0 投票
1 回答
43 浏览

jestjs - Jest 函数导出

我正在使用 jest+puppeteer,并且我有一个我想在我的项目中重用的代码。

我使用以下说明: https ://jestjs.io/docs/en/getting-started

测试可以毫无例外地运行,但没有任何反应,在 headless:false 模式下,Chrome 只是运行并关闭。

应该修复什么?

0 投票
0 回答
22 浏览

testing - 有没有办法使用它的显示名称选择下拉列表,其中下拉列表是从数据库而不是从 HTML 填充的?

我想知道是否有一种方法可以从下拉菜单中选择一个选择,其中所有选择都是从数据库中填充的并且没有任何选择器。

因为它没有任何我们不能使用的选择器,所以await page.select("selector",'dropdown') 我也尝试过使用

现在只是为了让它工作我正在使用

它选择了我想要的选择,但我认为这不是从下拉列表中选择选择的合适方式。

必须有正确的方法,非常感谢任何帮助!

0 投票
1 回答
1405 浏览

node.js - Jest 测试不会创建普通程序会创建的文件

我正在使用节点和 puppeteer 加载页面,获取其内容,然后创建屏幕截图。在运行功能结束时,我有以下几行

这在运行节点应用程序时有效。对于测试,我正在使用 JEST 并且在尝试运行检查屏幕截图的 JEST 测试时:

我收到以下错误 ENOENT: no such file or directory, open '/app/output/whatever.png'

我很难理解为什么在正常的应用程序流程中程序在运行时会创建文件,但在测试中却没有。作为附加信息,整个事情在 Docker 容器中运行

0 投票
1 回答
177 浏览

testing - 让 Puppeteer 等待 globalSetup 完成

我使用 Jest-Puppeteer 对 web 应用程序进行端到端测试。所有测试都与异步函数并行运行。现在我发现第一个测试在 globalSetup 完成并且数据准备完成之前已经运行(初始化客户端设置等)

我试图在请求后超时,但这不起作用,因为现在所有请求都有超时。

上面的代码运行一个 globalConfig,之后它开始为测试环境准备数据。

有没有办法让测试套件在这个脚本返回帖子之后运行http 200: ok

0 投票
3 回答
1128 浏览

jestjs - 在 IDE 或命令行中运行 E2E 测试

我正在使用 Stencil.js 创建一个 Web 组件库,并且我非常依赖 E2E 测试。由于它们相当慢,因此在开发新组件时运行整个测试套件(使用 Stencil.js CLI)变得越来越麻烦。

但是,我无法在我的 IDE (IntelliJ IDEA) 中或通过命令行运行单个测试。不过,它对于单元测试非常有效。

我的 Jest 配置如下所示:

当我尝试在单个文件中运行测试时 ( jest --config jest.config.js --testPathPattern src/components/button/button.e2e.ts$)

它失败了,因为

newE2EPage() 仅在 E2E 测试中可用,并使用 --e2e cmd 行标志运行。

newE2EPage() 带有 Stencil.js,我不知道 Stencil.js 的 CLI 在后台做了什么。此外,我克隆了 Stencil.js 存储库,只是为了查看它是否与他们的 E2E 测试(https://github.com/ionic-team/stencil/tree/master/test/end-to-end)一起工作,但它也不行。

知道如何配置 Jest 以便它能够从命令行运行 Stencil.js-E2E 测试吗?

0 投票
1 回答
1862 浏览

javascript - 用于输入的 Puppeteer 方法永远不会完成输入传递给它们的完整字符串

问题

问题摘要:我正在编写几个测试套件(使用 Jest 和 Puppeteer)来自动化我的 AngularJS 应用程序主页的测试。我想自动化的许多测试都涉及用<textareas>'s 填写表单,其中需要输入字符串(不同长度)。但问题是每个可用于输入的 Puppeteer 方法都极其不一致,因为并非传递给这些方法的字符串中的所有字符最终都会被输入,有时这些方法甚至会破坏后续方法做不相关的事情。

测试环境概述

  • 木偶版:1.19.0
  • 笑话版本:24.8.0

我已经尝试过了

研究:我在 Puppteeer 的 Github 问题页面上广泛搜索了解决方案,因为这个问题似乎非常普遍。到目前为止,我已经尝试了#1648#2784#1958#1223中提供的解决方案。以下是我尝试过的代码片段,取自这些不同的答案。到目前为止,他们都没有工作过。

最后的想法/问题:

有谁知道在 Puppeteer 中自动输入的可靠方法,这样我的测试就不会偶尔失败?

0 投票
2 回答
1548 浏览

jestjs - Jest、Puppeteer、Typescript、ReferenceError:未定义 Blob

我正在开发一个 Typescript 库,并试图用 Jest 和 Puppeteer 编写测试。测试失败是因为ReferenceError: Blob is not defined. 我遵循了 Jest 和 Jest-Puppeteer 的入门部分,但仍然遇到这个问题。如果测试在浏览器中运行,如何不定义 Blob?我能做些什么来解决这个问题?

0 投票
0 回答
108 浏览

javascript - Puppeteer 在 headless 中无法正常工作:true

我有一个测试用例,它从列表中选择发布并单击其上的转发按钮以触发模式,然后将其插入 DOM 并具有 2 个按钮,确认和取消。

在 headless: false - 一切都按预期工作,显示并单击模式: https ://i.imgur.com/oDgFzxC.png

在 headless: true - modal 永远不会打开: https ://i.imgur.com/KTQo91a.png

测试代码

有问题的方法: