0

我正在发送一个页面事件:

page.sendEvent('click', 650, 430);

这会单击通过 ajax 动态加载元素的链接。通过 访问这个动态加载的元素是否为时已晚page.evaluate?我似乎无法在页面上动态创建的任何内容中返回任何内容。

4

2 回答 2

0

到目前为止,最简单的动态方法是捕获控制台消息,如此处所述http://code.google.com/p/phantomjs/wiki/Interface#Callbacks

page.onConsoleMessage = function(msg) {
    console.log(msg);
};

如果您想发送一些二进制数据,那么我建议您通过将自定义脚本注入网页来使用某种管道。

于 2012-06-17T21:27:06.830 回答
0

为什么不window.setTimeout使用 page.render 并拍摄快照?因此,您的代码将更改为:

window.setTimeout(function() {
   page.sendEvent('click', 650, 430);
}, 5000);
window.setTimeout(function() {
   page.render('foo.png');
});

超时将使 ajax 调用有机会完成。当 ajax 调用完成时,渲染将让您看到页面应该是什么样子。

于 2012-07-17T22:54:38.593 回答