Я пытаюсь отлаживать скрипты casperjs using the remote debugger, и я обнаружил, что методы экземпляра casper не работают до завершения выполнения сценария. Похоже, что это некоторая обратная связь, когда выполняются функции then() и run() в casper, но я не уверен, как консольная консоль отладчика даже полезна, если вы не можете приостановить выполнение программы и запустить код как если он все еще работает (this answer действительно заставляет его звучать так, как вы можете).Не удается получить доступ к методам экземпляра casper в точках останова, используя удаленный отладчик PhantomJS
Например, hello_wolfram.js запускает экземпляр casper, переходит к вольфрам-альфа, перекликается с заголовком страницы, ищет фракталы, а затем снова повторяет заголовок страницы. Эти вызовы заголовков страниц отлично работают в запущенном скрипте, но если я попытаюсь запустить эту команду в консоли контекста casper, он вернет null. Ни один из других методов работы с кассой не работает. Переменная casper определена, хотя, и я получаю доступ к приятному, информативному объекту Каспера.
var casper = require('casper').create();
casper.start('http://www.wolframalpha.com');
// echo page title for sanity check
casper.then(function(){
debugger; // 1
this.echo('Hello, Wolfram! The Page title is ' + this.getTitle());
});
// enter search term and submit form
casper.then(function() {
this.fill('form.index', {'i': 'fractals'}, true)
});
// echo page title on search results page
casper.then(function(){
debugger; // 2
this.echo('The Page title is now ' + this.getTitle());
});
casper.run();
Перерыв 1:
- переменная Casper определена и возвращает объект Casper с CURRENTURL = "http://www.wolframalpha.com/"
- casper.getTitle() возвращает нуль
Перерыв 2:
- переменная Casper определена и возвращает объект Casper с CURRENTURL = "http://www.wolframalpha.com/input/?i=fractals"
- casper.getTitle() возвращает нуль
Я был действительно надеясь, что я смогу запустить команды casper в консоли casper и посмотреть их влияние на DOM в другом окне, которое похоже на то, что даст вам отладчик. Есть ли способ сделать это с помощью casperjs?