我正在使用PhantomJS
抓取一个网页,我按button
显示一些信息,然后拍摄一个屏幕截图。
非常简单的代码如下:
var page = require('webpage').create();
page.settings.userAgent = 'useragent';
page.open('http://url', function() {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
$("#button_id").click();
});
page.render('clicked.png');
console.log('Done!');
phantom.exit();
});
});
button
点击有效,但渲染过快。我希望我的脚本在单击button
后稍微等待,以便为信息提供足够的时间来显示。
我尝试将其更改为
window.setTimeout(function () {
page.render('clicked.png');
console.log('Done!');
phantom.exit();
}, 3000);
但这没效果。
在继续之前,如何等待button
点击必须生效的更改?
答案 0 :(得分:0)
您可以使用setInterval
定期检查是否存在您知道在预期更改发生后仅存在的元素。
window.setInterval(
function () {
if (<some element is present>) {
// do rendering
// exit or clear interval
} },
3000 );