问题标签 [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 投票
0 回答
253 浏览

testing - Jest-Puppeteer 在一个文件中测试多个案例

我刚刚进入 puppeteer 测试,我可以毫无问题地编写一个测试用例,其中 chromium 打开一个新标签到网站并测试注册过程。但是,当我尝试添加另一个测试登录过程的测试用例时,我无法让 chromium 打开一个新选项卡并进行该测试。

我的第一种情况的代码是这样的,它可以工作:

我测试登录过程的代码:

这里发生的是它将测试第一个案例(注册),打开到新的空白选项卡并停在那里并且不去 url 登录并且测试失败。谢谢您的帮助!

0 投票
2 回答
304 浏览

reactjs - Pupeteer 点击引导卡

我正在尝试使用 puppeteer 编写反应测试,但很难点击元素,除了简单的按钮和链接。我正在尝试单击引导(reactstrap)卡(或其中的图像/文本)以将项目添加到购物车。然后我必须通过检查该项目是否在数据表(组件)上来检查该项目是否已添加到购物车中。这是页面外观的屏幕截图。 在此处输入图像描述

这是浏览器上产品的html部分

这是数据表购物车项目的 html

我正在尝试通过我拥有的这个功能来选择它们。它适用于按钮和链接。它不适用于产品和购物车项目。

0 投票
2 回答
1421 浏览

jestjs - 运行 jest-puppeteer 测试时出现未处理的错误

我正在尝试为我的 puppeteer 项目设置测试。我正在遵循基本指南并且测试通过但终端中有 2 个控制台错误。

使用https://google.comhttps://youtube.com时不会出现该错误。所以看起来它可能与特定站点有关?

这是我的代码

这是我的 jest.config.js

包.json

我遇到的所有事情都提到了 async/await 的问题,但是我尝试过的任何事情都会产生相同的错误,如果不是的话,还会产生更多错误。我用这些文件做了一个新项目,我得到了同样的错误

0 投票
1 回答
890 浏览

node.js - 在 jest 和 playwright 上使用多种配置运行测试

我目前正在尝试用 playwright 和 jest 运行自动化测试。我正在尝试从 csv 文件加载多个配置(浏览器类型、分辨率、设备、url)并根据每个配置或测试用例运行测试。笑话和剧作家是否为我提供了解决这个问题的方法?

0 投票
1 回答
535 浏览

javascript - 使用 puppeteer 获取自定义元素,然后执行单击操作

我创建了一个名为data-testId的自定义属性,我正在尝试使用 puppeteer,然后执行单击操作,但由于某种原因,我无法获取此元素并面临错误。我已经尝试了这两个选项:

和这个:

在他们身上,我都收到了这个错误:

我做错了什么?这个错误是什么意思?

0 投票
1 回答
155 浏览

node.js - 在使用 node 和 puppeteer 获得页面响应后,如何找到某个是否存在?

我正在抓取一些网站以检查它们是否被阻止,因此我比较了不同的响应。我得出的结论是,有些脚本标签中有一个特定的功能,我不知道如何捕捉它。我尝试了几种解析响应的方法,但无法做到......提前谢谢!

这是一段脚本(在正文中):

0 投票
1 回答
756 浏览

reactjs - ReactJS Jest Puppeteer 测试不再工作:ReferenceError: document is not defined

设想

npm test过去可以毫无问题地工作。在大约一个月的时间里(我忽略了测试),有些东西发生了变化,现在我ReferenceError: document is not defined在尝试通过npm test.

即使document删除了这个错误也会出现,所以它看起来像是一个木偶问题,但我不确定为什么现在会出现。我检查了一个多月前的代码,测试仍然有效,但发生了很大变化,很难追查实际问题。

尝试的解决方案

  • 升级节点
  • 重新安装 npm 包
  • 恢复jest-puppeteer.config.js到以前的版本
  • 添加@jest-environment jsdom到修复文档问题但随后导致的测试ReferenceError: page is undefined

问题

如果不从头开始,我该如何解决这个问题?也就是说,我准备重新开始,如果这就是它所需要的,有时它会这样做。

代码

这是一个基本的笑话文件

** 编辑 **

据我所知,这个“ReferenceError”似乎是一个babel错误,因为babel似乎无法弄清楚“document”是什么。我追踪了问题发生的位置,并且它在第三方插件中,所以我同时在开发人员的 github 页面上留下了一个注释。目前我的“解决方案”是评论这个测试 - 当我有时间找到合适的解决方案时,我会再次投入更多精力

** 编辑 2 **

如果我添加<rootDir>/node_modules/react-json-view/dist/main.js到 babel config'stransformIgnorePatterns那么我会得到一个不同的错误

这很奇怪,因为我明确地import "regenerator-runtime/runtime"在顶部。这似乎更近了一步,但我不确定。我切换回babel-polyfill(不推荐使用)只是为了尝试它,但以不同的错误结束TypeError: jest: failed to cache transform results

0 投票
1 回答
1389 浏览

jestjs - Jest Puppeteer 测试在一起运行时失败(同步)

使用的技术:

  • npm
  • 笑话
  • 笑话木偶

如果我一个一个地运行我的测试,他们会单独通过

但是,如果我作为一个组运行我的测试,那么错误就会很猖獗

问题

我的情况似乎与某种 jest/puppeteer 缓存或 chrome 会话共享有关。不管怎样,我该如何进一步调试呢?

额外的

在写这个问题时,我发现使用参数--runInBand(来自这个答案)使得所有测试都通过,但它们是按顺序运行的,这使得测试需要更长的时间——通常开玩笑测试是并行运行的。

设置

包.json

jest-puppeteer.config.js

0 投票
1 回答
100 浏览

unit-testing - 测试 - 如何拆分预提交单元测试和 CI 端到端测试

设想

我正在开发一个具有快速单元/功能玩笑测试以及较慢的端到端玩笑木偶测试的应用程序。我想将它们分开,以便我可以将更快的测试作为 git pre-commit 钩子的一部分运行,并在代码最终推送到源后让端到端测试在 CI 上运行。

问题

如何定义在预提交时运行的特定测试?特别是通过类似于 jest moduleNameMapper的正则表达式,例如<rootDir>/__tests__/[a-z]+\.unit\.test\.js


  • 迄今为止最好的主意:

package.json添加test:pre使用 bashfind . -regex和 bashfor do运行所需的“预提交”测试

0 投票
1 回答
321 浏览

react-native - jest-expo-puppeteer - 得到“哦,不!看起来你的浏览器中没有启用 JavaScript”

当我按照jest-expo-puppeteer 文档jest-expo-puppeteer中的指南运行一个非常简单的示例测试时,我不断收到奇怪错误的日志,而且似乎找不到任何预期的元素。所以我尝试打印出页面:

页面结果显示文本Oh no! It looks like JavaScript is not enabled in your browser.

无头执行和浏览器内执行都会发生这种情况。

所以看起来Javascript已关闭。该page对象是由内部创建的jest-expo-puppeteer,所以我想知道:

  • 如何在 中打开 JavaScript jest-expo-puppeteer
  • 默认情况下不应该打开吗?也许我在设置中错过了一些东西?