2017-08-11 45 views
0

我是CasperJS的新手。CasperJS - 无法捕捉到完整的网站screenshoot withPopup功能

当我使用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(); 
}); 
+0

初学者'#main p a'返回至少290个锚点元素。其次点击其中的第一个不会显示一个弹出窗口,但会重定向到另一个网址!你想在这里做什么? – Rippo

+0

我只是想尝试一下使用补丁功能,使用点击重定向到另一个页面。 – phaneven

回答

0

最后,我发现截图并不完整,使用withPopup功能时,其视图大小改变。因此,只需在withPopup函数中添加this.viewport(1600,1000),屏幕截图就会看起来很好。

0

我认为你的问题是不相关的withPopupclick。出于某种原因,点击并不总是由像CasperJS这样的浏览器自动化库正确处理。如果我是你,我会尝试找到一种解决方法。用一个简单的thenOpen,弹出正确加载中...

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(); 
}); 
+0

有没有办法使用点击重定向到另一个页面?谢谢。 – phaneven