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

javascript - 木偶按钮按下

根据https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepresskey-options,您可以使用 Puppeteer 模拟键盘按钮的按下。

这就是我所做的:

按下按钮不会产生任何东西。它基本上被忽略了。

如何模拟 Enter 键来提交表单?

0 投票
1 回答
1531 浏览

google-maps - Chrome Headless 不适用于 Google 地图 3D 或 Google 地球

我的印象是 Chrome Headless 是一个功能齐全的 Chrome 版本,它可以运行任何 Chrome 桌面也可以运行的东西。但是,Chrome Headless 似乎无法显示来自 Google 地图和 Google 地球的 3D 页面。

谷歌地图网址示例:

https://www.google.co.uk/maps/@51.6506889,-0.4041839,40a,35y,113.57h,73.36t/data=!3m1!1e3

谷歌地球:

https://earth.google.com/web/@51.6499525,-0.40162489,64.98644774a,251.31324967d,35y,111.968

这是来自终端的示例:

还有一个使用 puppeteer 的例子

预期的结果是什么?

我希望结果的呈现方式与桌面版 Chrome 浏览器中的呈现方式相同。

相反会发生什么?

对于谷歌地图链接,它以 2D 而不是 3D 呈现。

对于谷歌地球,会给出一条错误消息:

哦,快!您的浏览器尚不支持新版 Google 地球。请在 Chrome 中尝试此链接。如果您没有安装 Chrome,请在此处下载。

有谁知道为什么会这样?是否需要在 Chrome 中启用某些功能才能正确渲染地图和地球?

0 投票
5 回答
16073 浏览

automated-tests - 使用 Puppeteer 在页面上拦截 XHR 请求并返回模拟响应的最佳方法

我需要能够在加载了Puppeteer的页面上拦截 XHR 请求并返回模拟响应,以便为我的 Web 应用程序组织后端测试。最好的方法是什么?

0 投票
1 回答
1515 浏览

javascript - puppeteer 在调用暴露的函数后截取屏幕截图

我正在尝试使用 puppeteer 导航到页面,等待 webapp 达到特定状态,截屏并退出。当 SPA 处于我想要截屏的状态时,它会调用一个函数。我很难理解异步 js 代码。

我的代码如下所示:

但是当我打电话时screenshot.js,我收到有关未处理承诺的警告,说“会话已关闭。很可能页面已关闭。”

如果我await browser.close()从第 18 行删除,没有警告,但脚本永远不会完成。

现在,它interstingFunction()做了更多的事情,但是将它暴露在 webapp 的窗口中是安全的。我只是试图举一个上面仍然失败的最小脚本的例子。

我正在使用节点 v8.5.0。

我接近这个错误吗?

0 投票
3 回答
35367 浏览

javascript - Puppeteer page.evaluate querySelectorAll 返回空对象

我正在尝试 Puppeteer。这是您可以运行的示例代码:https ://try-puppeteer.appspot.com/

问题是这段代码返回一个空对象数组:

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}, {}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{}、{} ,{},{},{},{},{},{},{}]

我犯错了吗?

0 投票
1 回答
1603 浏览

javascript - puppeteer : 使用带有 dom 交互的外部函数

使用 puppeteer chrome 测试开发工具,我想设置和使用外部函数

但它会触发错误:

(节点:16312)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:协议错误(Runtime.evaluate):目标已关闭。(节点:16312)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

你知道我应该怎么做吗?

0 投票
3 回答
10937 浏览

puppeteer - 如何使用 Puppeteer 在选项卡之间切换?

这是我的用例:

我有一个链接,单击它会打开一个新选项卡并加载内容。

我在找什么:

有没有办法在新标签打开时切换页面的引用或为新标签创建引用?

0 投票
1 回答
5472 浏览

javascript - node.js 中的 SSL 证书错误

我遇到了傀儡师的问题。所以我想做的是启动一个网站并登录。但是,该网站尝试加载因不安全而被阻止的资源。运行代码后,我收到此错误消息并且代码停止运行:

我的代码:

这是 chrome 领事馆提出的:

我的环境:最新的 Puppeteer 版本/Windows 10

0 投票
3 回答
4745 浏览

node.js - puppeteer:我们可以使用音频吗?

在 pupeteer 中,播放声音启动错误。

下面的代码在普通 chrome 和普通 js 中工作:

启动错误:

(节点:11548)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):ReferenceError:未定义音频(节点:11548)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

但是,该操作在纯 javascript 中有效:

我可以做这个动作吗?

0 投票
7 回答
23575 浏览

javascript - 调试人偶

有什么方法可以调试 puppeteer 脚本吗?由于某种原因,其中一个按钮没有被点击。我尝试了所有不同的方法,实际上在另一个脚本中我点击了它,但在这个我没有。