CasperJS - 无法使用弹出功能捕获完整的网站截图
CasperJS - Cannot capture complete website screenshoot in withPopup function
我是 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();
});
我认为您的问题与 withPopup
无关,而与 click
有关。由于某些原因,浏览器自动化库(如 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();
});
最后发现截图并非不完整,在使用withPopup函数时,它的view size变了。所以只需在 withPopup 函数中添加 this.viewport(1600,1000) ,屏幕截图就可以正常显示了。
我是 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();
});
我认为您的问题与 withPopup
无关,而与 click
有关。由于某些原因,浏览器自动化库(如 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();
});
最后发现截图并非不完整,在使用withPopup函数时,它的view size变了。所以只需在 withPopup 函数中添加 this.viewport(1600,1000) ,屏幕截图就可以正常显示了。