访问phantomjs中动态加载的元素

时间:2012-06-12 15:52:17

标签: javascript phantomjs

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

为什么不使用window.setTimeout并使用page.render拍摄快照?所以你的代码将改为:

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

超时会给ajax调用一个完成的机会。渲染将让你看到在完成ajax调用时页面应该是什么样的。