2012-06-28 18 views
9

Sto tentando di utilizzare CasperJS per analizzare un sito Web con contenuti dinamici e che finora non funziona. Il sito Web utilizza un paio di librerie js (ad esempio Prototype) per utilizzare il completamento automatico per creare contenuto. Sto quindi cercando di inserire alcuni valori e attivare eventi per compensare la creazione del contenuto. L'inserimento e l'attivazione di eventi funziona correttamente, ma non viene creato alcun contenuto.injectJs con PhantomJs e CasperJs

Sono nuovo di CasperJS e ho scoperto che ha problemi con i percorsi relativi alle librerie. Sospetto che il mio problema derivi dal fatto che le librerie non si caricano correttamente nel mio ambiente di pagina. Ho cercato pertanto di utilizzare injectJs per iniettare loro come questo

// ... creare Casper e fare alcune altre cose

casper.then (function() {

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')); 

}); 

Purtroppo questo restituisce false per entrambe le funzioni.Il percorso per lo script è corretto, dove altro potrebbe essere la radice di questo problema?

Grazie yo molto per qualsiasi aiuto.

risposta

4

Non credo che CasperJS possa gestire richieste HTTP per l'inserimento di script. Questo è strano perché in realtà mostrano questo in their FAQ on including jQuery. Tuttavia, lo stesso FAQ dice quanto segue:

Non si può iniettare script utilizzando il protocollo HTTP, in realtà si deve utilizzare un percorso filesystem relativo/assoluto alla risorsa script.

Solo per ricontrollare, l'ho provato io stesso utilizzando Mac OS X e il codice precedente. I risultati dell'eco sono stati false quando si utilizzava un file su http e true quando era locale.

+0

Grazie. Immagino che il modo migliore sia scaricare gli script e quindi includerli da percorsi locali. – Marco

+3

Per i record ho aggiornato la documentazione di conseguenza, mi dispiace per quell'errore. – NiKo

+0

Penso che sia possibile usare 'remoteScripts' per iniettare script non locali ora – wildpeaks

1

questo è il modo in I Somministri Jquery nello script Casperjs

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

file di Jquery dovrebbe essere sulla stessa directory in cui casperjs sceneggiatura exisit

Problemi correlati