2012-06-28 2 views
9

Я пытаюсь использовать CasperJS для очистки веб-сайта с динамическим контентом и до сих пор не работает. На веб-сайте используется несколько js-библиотек (например, Prototype) для использования автозаполнения для создания контента. Поэтому я пытаюсь вставить некоторые значения и инициировать события, чтобы настроить создание контента. Вставка и запуск событий работает нормально, но контент не создается.injectJs с PhantomJs и CasperJs

Я новичок в CasperJS и обнаружил, что у него проблемы с относительными путями к библиотекам. Я подозреваю, что моя проблема возникает из-за того, что библиотеки не загружаются должным образом в среду моей страницы. Поэтому я попытался использовать injectJs, чтобы придать им, как это

// ... создать Каспера и сделать некоторые другие вещи

casper.then (функция() {

this.echo(this.page.injectJs('http://www.my-website.com/path/to/js1')); 
this.echo(this.page.injectJs('http://www.my-website.com/path/to/js2')); 

}); 

К сожалению, это возвращает false для обеих функций. Правильный путь к скрипту, где еще может быть корень этой проблемы?

Thank yo u очень много для любой помощи.

ответ

4

Я не верю, что CasperJS может обрабатывать HTTP-запросы для ввода сценариев. Это странно, потому что они на самом деле показывают это in their FAQ on including jQuery. Тем не менее, говорит тот же FAQ следующее:

Вы не можете вводить скрипты с использованием протокола HTTP, вы на самом деле должны использовать относительный/абсолютный путь файловой системы для ресурса сценария.

Просто, чтобы проверить, я попробовал сам, используя Mac OS X и ваш код выше. Результаты эха были false при использовании файла по http и true, когда он был локальным.

+0

Спасибо. Я думаю, лучший способ - загрузить скрипты, а затем включить их из локальных путей. – Marco

+3

Для записей я обновил документацию соответственно, извините за эту ошибку. – NiKo

+0

Я думаю, что вы можете использовать 'remoteScripts' для ввода нелокальных скриптов в настоящее время. – wildpeaks

1

это, как я Вводят Jquery в Casperjs скриптом

casper.options.clientScripts = ["jquery-3.2.1.min.js"] 

Jquery файл должен быть на той же директории, где casperjs скрипт exisit