问题标签 [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.
testing - Jest-Puppeteer 在一个文件中测试多个案例
我刚刚进入 puppeteer 测试,我可以毫无问题地编写一个测试用例,其中 chromium 打开一个新标签到网站并测试注册过程。但是,当我尝试添加另一个测试登录过程的测试用例时,我无法让 chromium 打开一个新选项卡并进行该测试。
我的第一种情况的代码是这样的,它可以工作:
我测试登录过程的代码:
这里发生的是它将测试第一个案例(注册),打开到新的空白选项卡并停在那里并且不去 url 登录并且测试失败。谢谢您的帮助!
jestjs - 运行 jest-puppeteer 测试时出现未处理的错误
我正在尝试为我的 puppeteer 项目设置测试。我正在遵循基本指南并且测试通过但终端中有 2 个控制台错误。
使用https://google.com或https://youtube.com时不会出现该错误。所以看起来它可能与特定站点有关?
这是我的代码
这是我的 jest.config.js
包.json
我遇到的所有事情都提到了 async/await 的问题,但是我尝试过的任何事情都会产生相同的错误,如果不是的话,还会产生更多错误。我用这些文件做了一个新项目,我得到了同样的错误
node.js - 在 jest 和 playwright 上使用多种配置运行测试
我目前正在尝试用 playwright 和 jest 运行自动化测试。我正在尝试从 csv 文件加载多个配置(浏览器类型、分辨率、设备、url)并根据每个配置或测试用例运行测试。笑话和剧作家是否为我提供了解决这个问题的方法?
javascript - 使用 puppeteer 获取自定义元素,然后执行单击操作
我创建了一个名为data-testId的自定义属性,我正在尝试使用 puppeteer,然后执行单击操作,但由于某种原因,我无法获取此元素并面临错误。我已经尝试了这两个选项:
和这个:
在他们身上,我都收到了这个错误:
我做错了什么?这个错误是什么意思?
node.js - 在使用 node 和 puppeteer 获得页面响应后,如何找到某个是否存在?
我正在抓取一些网站以检查它们是否被阻止,因此我比较了不同的响应。我得出的结论是,有些脚本标签中有一个特定的功能,我不知道如何捕捉它。我尝试了几种解析响应的方法,但无法做到......提前谢谢!
这是一段脚本(在正文中):
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
。
jestjs - Jest Puppeteer 测试在一起运行时失败(同步)
使用的技术:
- npm
- 笑话
- 笑话木偶
如果我一个一个地运行我的测试,他们会单独通过
但是,如果我作为一个组运行我的测试,那么错误就会很猖獗
问题
我的情况似乎与某种 jest/puppeteer 缓存或 chrome 会话共享有关。不管怎样,我该如何进一步调试呢?
额外的
在写这个问题时,我发现使用参数--runInBand
(来自这个答案)使得所有测试都通过,但它们是按顺序运行的,这使得测试需要更长的时间——通常开玩笑测试是并行运行的。
设置
包.json
jest-puppeteer.config.js
unit-testing - 测试 - 如何拆分预提交单元测试和 CI 端到端测试
设想
我正在开发一个具有快速单元/功能玩笑测试以及较慢的端到端玩笑木偶测试的应用程序。我想将它们分开,以便我可以将更快的测试作为 git pre-commit 钩子的一部分运行,并在代码最终推送到源后让端到端测试在 CI 上运行。
问题
如何定义在预提交时运行的特定测试?特别是通过类似于 jest moduleNameMapper的正则表达式,例如<rootDir>/__tests__/[a-z]+\.unit\.test\.js
- 迄今为止最好的主意:
在package.json添加test:pre
使用 bashfind . -regex
和 bashfor do
运行所需的“预提交”测试
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
? - 默认情况下不应该打开吗?也许我在设置中错过了一些东西?