【问题标题】:CasperJS - Cannot capture complete website screenshoot in withPopup functionCasperJS - 无法在 withPopup 功能中捕获完整的网站屏幕截图
【发布时间】:2017-08-11 07:40:51
【问题描述】:

我是 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();
});

【问题讨论】:

  • 对于初学者 #main p a 返回至少 290 个锚元素。其次,单击其中的第一个不会显示弹出窗口,而是重定向到另一个 url!你想在这里做什么?
  • 我只是想尝试一下withPopup功能,使用click重定向到另一个页面。

标签: javascript casperjs


【解决方案1】:

我认为您的问题与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();
});

【讨论】:

  • 有没有办法使用点击重定向到另一个页面?谢谢。
【解决方案2】:

最后,我发现截图并不完整,当使用 withPopup 函数时,它的视图大小发生了变化。因此,只需在 withPopup 函数中添加 this.viewport(1600,1000) ,屏幕截图就会看起来不错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 2015-05-16
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多