Я использую 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
, и я не знаю почему.