javascript - 如何在 PhantomJS 中的 page.evaluate() 函数中调试 Javascript 代码?

标签 javascript debugging phantomjs

我有一个 PhantomJS (1.9) 脚本“test.js”(代码取自 PhantomJS 文档)-

var webPage = require('webpage');
var page = webPage.create();

page.open('http://m.bing.com', function(status) {

  var title = page.evaluate(function() {
    // >> I have a breakpoint here, but debugger doesnt stop!
    return document.title;
  });

  console.log(title);
  phantom.exit();

});

我正在使用 phantomjs --remote-debugger-port=9000 test.js 调试此代码和 Chrome 。

除了 page.evaluate() 里面的代码,我可以到达所有代码断点.
有没有办法调试它?

最佳答案

这是一个老问题,phantomJS 引擎已经遗留了很长一段时间,但对于所有像我一样必须维护遗留代码的人来说,这是我准备的一个 gif,它显示了如何逐步调试的过程phantomjs 脚本和里面打开的页面。
所以你需要做的就是在页面脚本中放置一个断点,复制当前浏览器标签页的链接,将页码加一。这会将调试器附加到内部脚本,您将能够调试您的代码。
你可以查看一步一步的gif(它太大了,无法上传)=> https://gaziedutr-my.sharepoint.com/:i:/g/personal/ahmet_bekir_urun_gazi_edu_tr/EZUj5yMbgqJIpun7qBdfF5sB3QWWg1r5u3MwayiKsw4Lug?e=PXeS8t

关于javascript - 如何在 PhantomJS 中的 page.evaluate() 函数中调试 Javascript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34015870/

相关文章:

javascript - 如何在 webpack 中使用 noParse?

javascript - 调用后端时页面失去对齐并且需要一些时间来重新对齐控件

c++ - 在方法激活时具有两个不同实例的对象

iphone - 如何将我的应用程序放入 iPhone 3G?

javascript - 如何在使用 Phantomjs 生成 HTML 时保留结束 img 标签?

javascript - Flask/jinja 发送数组到 javascript

javascript - 显示 div,然后在点击外部时隐藏

java - 更改默认的 NetBeans 调试器?

selenium-webdriver - 以编程方式获取 Web 请求发起者

javascript - 如何在 CasperJS 中单击此按钮?