phantom how debug ariya javascript jquery cmd phantomjs casperjs

javascript - how - phantomjs js



¿Cómo pasar una variable como argumento a un script CasperJS a través de la línea de comandos? (5)

Solución Intuitiva Completa:

Considere el siguiente comando:

casperjs example.js true --foo=false

La cadena true es un argumento de línea de comando, mientras que el nombre foo es una opción de línea de comando.

El valor asignado al nombre (variable) foo es la cadena false .

Los argumentos de la línea de comando son posicionales y se debe acceder a ellos a través del índice del argumento.

Las opciones de la línea de comandos se denominan y se debe acceder a ellas mediante el nombre de la opción.

En otras palabras, podría ver los argumentos como similares a los valores en una matriz numérica , mientras que las opciones son similares a los pares clave / valor en una matriz asociativa .

Argumentos de línea de comando

Puedes acceder a los argumentos usando uno de los siguientes métodos:

casper.cli.get(0) // Returns Boolean true ; Slowest / Most Readable (Opinion) casper.cli.args[0] // Returns Boolean true casper.cli.raw.get(0) // Returns String "true" casper.cli.raw.args[0] // Returns String "true" ; Fastest / Least Readable (Opinion)

Opciones de línea de comando

Puede acceder a las opciones utilizando uno de los siguientes métodos:

casper.cli.get(''foo'') // Returns Boolean false ; Slowest / Most Readable (Opinion) casper.cli.options[''foo''] // Returns Boolean false casper.cli.raw.get(''foo'') // Returns String "false" casper.cli.raw.options[''foo''] // Returns String "false" ; Fastest / Least Readable (Opinion)

Para otras consultas sobre los argumentos u opciones de la línea de comando de CasperJS, consulte la documentación: documentation

Estoy usando PhantomJs, CasperJs y Js en un archivo js ejecutado a través del cmd.

Imagina que tenemos dos archivos (test1.js y test2.js). Ambos archivos tienen una variable url / sitio que dirige la prueba a una dirección particular. Cada vez que un entorno cambia o la ubicación de destino cambia, deberíamos actualizar esta variable.

Para evitar tener que actualizar los archivos, me gustaría pasar los valores a través de la línea de comandos, en cuanto a dónde probar esto.

¿Hay una manera de declarar la variable de cadena a través del cmd mientras ejecuta el archivo?

P.ej:

casperjs test.js "var site=''http://google.com'';"


Encontré las respuestas demasiado difíciles de entender de un vistazo. Puede pasar parámetros arg o opción.

Ejemplo: Pasar opciones * (Se requiere usar = )

$ casperjs myscript.js --username=user --password=123

var casper = require(''casper'').create(); var username = casper.cli.options.username; var password = casper.cli.options.password; console.log(username + '':'' + password); // user:123 casper.exit();

Ejemplo: pasar Args

$ casperjs myscript.js user 123

var casper = require(''casper'').create(); var username = casper.cli.args[0]; var password = casper.cli.args[1]; console.log(username + '':'' + password); // user:123 casper.exit();


La documentation dice que puede pasar parámetros de línea de comandos.

CasperJS se envía con un analizador de línea de comandos incorporado encima del PhantomJS, ubicado en el módulo cli ; Expone argumentos pasados ​​como posicionales y opciones nombradas.

Pero no se preocupe por manipular la API de análisis del módulo cli, una instancia de Casper siempre contiene una propiedad cli lista para usar, lo que permite un fácil acceso a todos estos parámetros.

Código de ejemplo:

var casper = require("casper").create(); casper.echo("Casper CLI passed args:"); require("utils").dump(casper.cli.args); casper.echo("Casper CLI passed options:"); require("utils").dump(casper.cli.options); casper.exit();

Resultados de ejecución:

$ casperjs test.js arg1 arg2 arg3 --foo = barra --plop anotherarg Casper

CLI passed args: [ "arg1", "arg2", "arg3", "anotherarg" ] Casper CLI passed options: { "casper-path": "/Users/niko/Sites/casperjs", "cli": true, "foo": "bar", "plop": true }


Podría tener un archivo con sus variables globales y luego invocarlos en los otros archivos. Al igual que cuando desea modificar una variable, solo tiene que modificar un archivo. Use phantom.injectJs (ruta / a / archivo) para llamar a otros archivos en sus archivos principales. Funciona con phantomJS y slimerJS.

Ejemplo:

js_file

--variable.js-- var site=''http://google.com'';

js_file

--file1.js-- phantom.injectJs( ''variable.js''); casper.start(''site'', function(){ ... });

js_file

--file2.js-- phantom.injectJs( ''variable.js''); casper.thenOpen(''site'', function(){ ... });


en el símbolo del sistema diga:

casperjs test file_name.js --port=''123'' --username=''batman''

en el guión de prueba diga:

casper.cli.get(''port''); casper.cli.get(''username'');