2012-06-28 11 views
9

Estoy tratando de usar CasperJS para rozar un sitio web que tiene contenido dinámico y estoy fallando hasta el momento. El sitio web usa un par de librerías js (por ejemplo, prototipo) para utilizar la función autocompletar para crear contenido. Por lo tanto, intento insertar algunos valores y desencadenar eventos para activar la creación de contenido. Insertar y desencadenar eventos funciona bien, pero no se crea contenido.injectJs con PhantomJs y CasperJs

Soy nuevo en CasperJS y encontré que tiene problemas con las rutas relativas a las bibliotecas. Sospecho que mi problema se debe a que las librerías no se cargan correctamente en el entorno de mi página. Por lo tanto, trató de utilizar injectJs inyectarlos como esto

... // crear Casper y hacer algunas otras cosas

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

}); 

Desafortunadamente esto devuelve falso para ambas funciones. La ruta al script es correcta, ¿dónde más podría estar la raíz de este problema?

Thank yo muchas gracias por cualquier ayuda.

Respuesta

4

No creo que CasperJS pueda manejar solicitudes HTTP para inyectar scripts. Esto es raro porque en realidad muestran esto in their FAQ on including jQuery. Sin embargo, ese mismo FAQ dice lo siguiente:

No se puede inyectar secuencias de comandos utilizando el protocolo HTTP, que realmente tiene que utilizar una ruta de sistema de archivos relativa/absoluta al recurso guión.

Solo para comprobarlo, lo intenté usando Mac OS X y el código anterior. Los resultados del eco fueron false cuando se usaba un archivo en http y true cuando era local.

+0

Gracias. Supongo que la mejor manera es descargar los scripts y luego incluirlos en las rutas locales. – Marco

+3

Para los registros actualicé la documentación en consecuencia, lo siento por ese error. – NiKo

+0

Creo que puede usar 'remoteScripts' para inyectar scripts no locales ahora – wildpeaks

1

esta es la forma I Inyecte Jquery en escritura Casperjs

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

archivo Jquery debe estar en la misma carpeta donde casperjs guión exisitir

Cuestiones relacionadas