javascript - Puppeteer console.log - 如何查看 JSHandle@object 内部?
问题描述
我有一个使用 Puppeteer 测试的 React/Redux 应用程序。根据文档,我使用以下代码来显示控制台输出:
page.on('console', msg => {
for(let i = 0; i < msg.args().length; ++i) {
let text = msg.args()[i];
console.log(`${i}: ${text}`);
}
});
但是,当 redux-logger 将对象记录到控制台(prevState,nextState)时,Puppeeter 会显示JSHandle@object
在我的控制台输出中。如何查看此对象内的键和属性?
解决方案
如果您consoleMessage.args()
直接将它们放在内部console.log()
而不将它们包含在模板文字中,则可以打印JSHandles的键和值,这些键和值表示console.log()
在页面上下文中传递给的每个参数:
page.on('console', msg => {
for (let i = 0; i < msg.args().length; i++) {
console.log(msg.args()[i]);
}
});
结果的开头将如下所示:
JSHandle {
_context:
ExecutionContext {
_client:
CDPSession {
domain: null,
_events: [Object],
...
推荐阅读
- python - 来自神经网络的一组动作空间上的返回分布
- r - 取消嵌套一个 ts 类
- sql-server - sqlalchemy+mssql+python3 查询编码
- uipath - 没有特定 ID 时 UIPath 选择器如何工作
- vb.net - TCP 客户端未正确接收数据 VB.NET
- java - Android 在某些设备中跳来跳去
- cordova - 离子在移动设备上运行 CORS 问题
- data-binding - 在 AndroidStudio 3.0 上迁移到 androidx.databinding
- postgresql - 如何在 docker 安装中将 openproject 数据库从 Postgresql v9.4 迁移到 v9.6?
- r - 在文本中查找无意义的单词