问题标签 [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.
javascript - 如何使用 Puppeteer 保持 Chromium 打开?
我只想从第一个脚本启动一个 Chromium 实例,然后从其他脚本附加到它。我知道 puppeteer.connect() 但问题是我启动了应该启动 Chromium 的脚本:
...它永远不会结束,因为我没有做 browser.close()。因此,我无法开始运行其他脚本。如何启动 Chromium,获取其端点并结束剩余的 Chromium 启动的脚本。
(这个不包含适当的答案)
webautomation - Puppeteer:打开无头实例非无头
想知道是否可以打开以前的无头实例非无头并从您停止的地方继续。我试图在此过程中将 headless 更改为 false,但是,它没有用。
提前致谢
javascript - 使用 Puppeteer 获取所有纯文本
我可以使用 Puppeteer 获取所有页面代码,但我如何才能仅获取纯文本?没有标签?
javascript - 如何运行 Google Chrome 无头 Puppeteer 代码
我正在尝试使用 puppeteer(特别是在延迟后截取屏幕截图,但我的问题比这更基本)
https://github.com/GoogleChrome/puppeteer
我已成功运行以下命令。
文档说以下
使用其他浏览器测试框架的人会熟悉 Puppeteer。您创建一个 Browser 实例,打开页面,然后使用 Puppeteer 的 API 操作它们。
不幸的是,我不熟悉其他浏览器测试框架,也不知道“创建浏览器实例”是什么意思。
我看到了examples/screenshot.js 文件。它包含以下内容。
我没有在任何自述文件、文档或问答中提到如何运行此代码。一切似乎都假设这一步是显而易见的,它可能是,但我不知所措,因为我对 Node.js 不是很熟悉。
我打了电话
node examples/screenshot.js
,但终端没有给出任何反馈,并且图像不是在我指定的任何路径中创建的。权限是正确的。我也试着
node install.js
先打电话。我曾尝试直接在终端中内联运行脚本,但这会在终端中给出“意外的令牌(”)。
我什至尝试在浏览器中运行它。显然那没有用。
如何运行 puppeteer 代码?
jestjs - 在所有 Jest 测试中重用相同的 Puppeteer 实例
问题
我正在用 Jest + Puppeteer 替换 CasperJS。将所有内容放在一个文件中效果很好:
现在,我真的不想将所有内容都保存在一个文件中。仅运行部分测试(例如,仅“测试 A”)更难维护,也更难运行。
我试过的
我查看了 Jest 文档并阅读了setupScript。这将是完美的,但它在每个测试文件之前运行。我不想要这个,因为 puppeteer 设置需要很多时间。无论我将运行多少个测试文件,我都想重复使用相同的浏览器实例并只支付一次设置成本。
于是,我想到了:
这解决了模块化,重用相同的浏览器实例,但不允许我单独运行测试。
最后,我偶然发现了创建自定义testEnviroment的可能性。这听起来不错,但没有很好的文档记录,所以我什至不确定是每个测试文件还是每个 Jest 运行都创建了 env 实例。稳定的 API 也缺少一种setup
我可以设置 puppeteer 的方法(我必须在不能异步的构造函数中这样做)。
为什么我要问
由于我是 Jest 的新手,我可能会遗漏一些明显的东西。在我深入研究之前,我想在这里问一下。
javascript - 使用 Puppeteer 从下拉菜单中选择值
我刚刚开始使用 Puppeteer API,尽管我已经看了多深,但我找不到解决这个错误的可靠方法。基本上,我试图聚焦一个下拉菜单元素并从中选择一个值。不幸的是,我尝试过的每个解决方案,无论是从这里还是从其他来源获得的,都没有奏效。
这是我尝试过的事情的清单:
在这件事上,任何帮助都将不胜感激,它一直把我逼到墙边,是唯一阻碍我完成项目的事情。
编辑:这是我到目前为止的代码,如果有帮助的话。
javascript - 使用 Puppeteer 时等待文本出现
我想知道是否有与 Selenium 类似的方式来等待特定元素的文本出现。我已经尝试过这样的事情,但它似乎并没有等待:
google-chrome - 如何使用 puppeteer 的 API page.addScriptTag 绕过 CSP(Content-Security-Policy)?
设想:
我在无头模式下使用 puppeteer 启动 chrome,并page.addScriptTag
使用跨域 javascript 文件调用。现在,如果打开站点设置了 csp 并且仅限制相同来源的 javascript 标签,我如何使用 puppeteer API 绕过它?
puppeteer - Puppeteer 中的 pageFunction 返回空对象
我page.$eval
在Puppeteer中使用,我不知道为什么pageFunction
当对象不为空时 a 会返回一个空对象。这是一个代码示例:
如何在 result2 中恢复整个元素?
javascript - 如何在 Puppeteer 中截屏或 PDF 之前删除标签?
我需要在截屏或生成 PDF 之前删除标签。
有什么办法可以导致这种情况吗?
我尝试添加page.addScriptTag(options)
and page.addStyleTag(options)
。
我收到如下错误: