Мне удалось прокрутить страницу до конца моей веб-страницы, чтобы загрузить весь динамический контент. Но после этого я хотел бы оценить страницу, чтобы получить некоторые данные. Моя проблема в том, если я бегу что-нибудь другое, чем простойCasperJS оценивает не excecuting после прокрутки вниз
casper.echo("something");
Мой код перерывов, и я не получаю Deeded данные. Это мой код:
var casper = require('casper').create();
casper.start("http://mypageWithDynamicContentOnScroll.com");
var linksPrendas = [];
casper.waitForSelector('#idOfDivContainingDynamicContent',function(){
scrollNow();
});
var currentHeight;
var page = 1;
function scrollNow(){
casper.scrollToBottom();
casper.waitForSelector("#page"+page+"Height", function() {
casper.echo('scrolling...');
page++;
scrollNow();
},
function _onTimeout(){
});
}
var data = '';
casper.then(function(){
casper.echo('e');
//data = __utils__.findOne('div#someId').textContent;
casper.echo('f');
//var links = this.evaluate(function() {
// casper.echo("Evaluate ");
// var elements = __utils__.findAll('a');
// return elements. map (function (e) {
// return e.getAttribute('href');
// });
//});
});
casper.run(function(){
// var data = casper.evaluate(function() {
// var elements = __utils__.findAll('a.productListLink');
// return elements.map(function(e) {
// return e.getAttribute('href');
// });
// casper.echo("Evaluate ");
// return [1,2,3];
// });
casper.echo("Then");
casper.echo(elements);
casper.echo("DONE").exit();
});
Вы можете увидеть некоторых из моего комментировала кода, который я попробовал много различных вариантов без какого-либо успеха. Я также попытался разместить оценку или findAll внутри обратного вызова _onTimeout. Я либо нарушаю код, и «DONE» никогда не печатается, либо я никогда не могу выполнить код внутри оценки или что-то еще.
Прокрутка отлично работает, и без прокрутки я могу оценить страницу и получить желаемый контент.
Так как я могу сделать эту работу? Оцените страницу после прокрутки?
Спасибо
EDIT: Я также испытанный передавая функцию обратного вызова scrollNow(), чтобы продолжить выполнение после scrollNow() называется. Вызывается обратный вызов, но опять же, нет удачи в оценке findAll или какой-либо другой функции для получения требуемых данных.
красивый! Спасибо за информацию – Alejandro