CasperJS - 无法在withPopup函数中捕获完整的网站屏幕截图

时间:2017-08-11 07:40:51

标签: javascript casperjs

我是CasperJS的新手。

当我使用withPopup时,弹出窗口中的页面似乎没有完全加载...

var casper = require('casper').create({
    verbose: true,
})

casper.start('https://www.w3schools.com/js/js_examples.asp').then(function(){
    this.capture('try1.png');
    this.click('#main p a');
})

casper.waitForPopup(0, function() {
    this.capture('try2.png');

}, null, 20000);

casper.withPopup(0, function() {
    this.waitForSelector('body', function(){
        this.capture('try3.png');
    })
});

casper.run(function() {
    casper.echo('Done.').exit();
});

2 个答案:

答案 0 :(得分:0)

我认为您的问题与click无关,而与thenOpen无关。出于某种原因,CasperJS等浏览器自动化库并不总能正确处理点击。如果我是你,我会尝试寻找解决方法。使用简单的var casper = require('casper').create({ viewportSize: { width: 1366, height: 768 } }); casper.start('https://www.w3schools.com/js/js_examples.asp', function () { this.capture('try1.png'); }); casper.thenOpen('https://www.w3schools.com/js/tryit.asp?filename=tryjs_intro_inner_html', function () { this.capture('try2.png'); }); casper.run(function () { casper.echo('Done.').exit(); }); ,弹出窗口正确加载...

var i int
for i = n; i >= 10; i = i / 10 {}
// i == most significant digit

答案 1 :(得分:0)

最后,我发现截图不完整,使用withPopup函数时,其视图大小发生了变化。所以只需在withPopup函数中添加this.viewport(1600,1000),然后屏幕截图就可以了。