Я использую CasperJS для автоматизации серии кликов, заполненных форм, анализа данных и т.д. через веб-сайт.
Кажется, Каспер организован в список предустановленных шагов в форме операторов then (см. их пример здесь: http://casperjs.org/quickstart.html), но неясно, что запускает следующий оператор.
Например, then ожидает завершения всех ожидающих запросов? Рассчитывает ли injectJS как ожидающий запрос? Что произойдет, если у меня есть инструкция then, вложенная в цепочку в конце инструкции open?
casper.thenOpen('http://example.com/list', function(){
casper.page.injectJs('/libs/jquery.js');
casper.evaluate(function(){
var id = jQuery("span:contains('"+itemName+"')").closest("tr").find("input:first").val();
casper.open("http://example.com/show/"+id); //what if 'then' was added here?
});
});
casper.then(function(){
//parse the 'show' page
});
Я ищу техническое объяснение того, как поток работает в CasperJS. Моя конкретная проблема заключается в том, что мой последний оператор then (выше) работает до моего оператора casper.open, и я не знаю почему.