2013-06-13 2 views
2

Хорошо в основном я пост:Удаление элемента DOM с помощью CasperJS

<div class=post> 
    <div class=content></div> 
    <div class=content-meta></div> 
</div> 

тот прототип его, чтобы помочь объяснить

так, что я хочу сделать, это использовать некоторые JS в основном удалить или скрыть ДИВ «содержание мета-»

Использование JQuery у меня есть:

$('.content-meta').remove(); 

однако, когда я нно g CasperJS Я немного озадачен тем, как я должен реализовать этот код.

Я ИЩУ манипулировать пост перед экранировать захвата её (ScreenCapture часть работает отлично)

Heres код (URL опущена) я тестировал с, он поднимает класс просто отлично, но я понятия не имею, где/как выполнить Jquery, чтобы удалить обнаруженный элемент до захвата экрана:

casper.start('http://pageurl.com/XYZ', function() { 

if (this.exists('.content-meta')) { 
    this.echo('found .content-meta', 'INFO'); 
} else { 
    this.echo('.content-meta not found', 'ERROR'); 
} 
this.captureSelector('resultingcapture.png', '.post'); 
}); 

casper.run(); 

TL; DR Как вы выполнить JS/Jquery из функции CasperJS?

ответ

5

Для выполнения яваскрипта кода из CasperJS, Вы должны использовать evaluate() методы

Метод оценки() как ворота между окружающей средой CasperJS и одной страницы, которую вы открыли; каждый раз, когда вы передаете закрытие для оценки(), вы вводите страницу и выполняете код, как если бы вы использовали консоль браузера.

Ваш код должен быть что-то вроде этого:

var casper = require('casper').create(); 

casper.start('http://pageurl.com/XYZ', function() { 

    if (this.exists('.content-meta')) { 

     this.echo('found .content-meta', 'INFO'); 

     //evaluates an expression in the current page DOM context. 
     this.evaluate(function(){ 
      //delete div 'content-meta' 
      $('.content-meta').remove(); 
     }); 

     this.then(function(){ 
      this.captureSelector('resultingcapture.png', '.post'); 
     }); 

    } else { 
     this.echo('.content-meta not found', 'ERROR'); 
    } 
}); 

casper.run(); 

Примечание: Этот код будет работать только если webcontext включает JQuery, в противном случае вы должны удалить DIV, используя только JavaScript.

Смежные вопросы