Casperjs и не удалось сохранить скриншот с помощью captureSelector

У меня есть такой код:

  casper.thenOpen(url, function() {
    this.echo('Opening at ' + width);
    //give some time for the page to load
    casper.waitFor(function check() {
      return this.evaluate(function() {
        return document.querySelectorAll('#browse-packshots').length > 0;
      });
    }, function then() {
      //set the viewport to the desired height and width
      this.viewport(width, height);
      //Set up two vars, one for the fullpage save, one for the actual viewport save
      var FPfilename = saveDir + '/fullpage-' + width + ".png",
          ACfilename = saveDir + '/' + width + '-' + height + ".png";

      //Capture selector captures the whole body
      this.captureSelector(FPfilename, 'body');
      //capture snaps a defined selection of the page
      this.capture(ACfilename,{top: 0,left: 0,width: width, height: height});
      this.echo('snapshot taken');
    },function timeout() {
      this.echo("Too long . No screenshot taken").exit();
    },10000);
  })

Каспер версии 1.0.4 на Mac. Когда я хочу использовать CaptureSelector, я получаю

[error] [phantom] Failed to save screenshot to fullpage-1440.png;
                  please check permissions...

С захватом проблем нет. Я пытаюсь использовать sudo, но безрезультатно.


person Marceli Janowski    schedule 19.11.2013    source источник
comment
Вы пытались выполнить скрипт casperjs как sudo? вам может понадобиться sudo phantomjs your_casper_script.js   -  person Chris Hawkes    schedule 19.11.2013
comment
Да, я сделал это, и это в описании проблемы. Странно, что когда я делаю это с захватом, он работает без проблем с разрешением, и это та же самая папка.   -  person Marceli Janowski    schedule 19.11.2013


Ответы (1)


Я думаю, что нашел ответ. Я меняю одну вещь в коде:

this.captureSelector(FPfilename, 'html');

Понятия не имею, почему это не сработало.

person Marceli Janowski    schedule 14.01.2014
comment
У меня такая же/похожая проблема. Если я использую определенный селектор, я получаю эту проблему. Но если я использую более широкий селектор (например, «тело» или «html»), он работает нормально. Я также не выяснил, почему это происходит (происходит не со всеми селекторами), но если я это сделаю, я вернусь и дам вам знать! - person Tom Pietrosanti; 03.02.2015