Passing params to evaluate as variables

305 views
Skip to first unread message

kanux02

unread,
Nov 8, 2012, 10:14:47 AM11/8/12
to casp...@googlegroups.com
On Thursday, November 8, 2012 7:12:59 PM UTC+4, kanux02 wrote:
hi. Here

index = 4; 
casper.evaluate(function(id) {
document.querySelector('#phone').setAttribute('value',phone);
}, { 
id    : index

});


why here index isnt passed  should I use  closures ot smth like that?

Jeffrey Cunningham

unread,
Nov 8, 2012, 4:01:06 PM11/8/12
to casp...@googlegroups.com
How do you know it isn't being passed? You don't use the id parameter anywhere. Did you mean to do something like this?

casper.evaluate(function(phone) {
    document.querySelector('#phone').setAttribute('value',phone);
}, {phone: index});

Jeff


2012/11/8 kanux02 <nmus...@gmail.com>

--
CasperJS homepage & documentation: http://n1k0.github.com/casperjs
CasperJS @github: https://github.com/n1k0/casperjs
 
Vous avez reçu ce message, car vous êtes abonné au groupe
Groupe "CasperJS" de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse casp...@googlegroups.com
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse casperjs+u...@googlegroups.com
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/casperjs?hl=fr?hl=fr

kanux02

unread,
Nov 8, 2012, 5:58:06 PM11/8/12
to casp...@googlegroups.com
Missed. Exactly that wanted to work but it doesnt.

Nicolas Perriault

unread,
Nov 9, 2012, 4:07:46 AM11/9/12
to casp...@googlegroups.com
On Thu, Nov 8, 2012 at 11:58 PM, kanux02 <nmus...@gmail.com> wrote:

> Missed. Exactly that wanted to work but it doesnt.

Reproduceable use case, please.

++

--
Nicolas Perriault
https://nicolas.perriault.net/
Phone: +33 (0) 660 92 08 67

kanux02

unread,
Nov 9, 2012, 7:04:08 PM11/9/12
to casp...@googlegroups.com
Here is how I did what i want using closure .
 casper.then(function(){
    phone_number   = casper.cli.get('phone');
    phone_password = casper.cli.get('password');


  });


  // Click on 'Search' button
  casper.then(function(){
    casper.waitForSelector('a.login',function(){
      casper.click('.login');
    });
  });

casper.then(function() {

    (function(ph,ps) {

      casper.thenEvaluate(function(phone,password) {

        document.querySelector('input#phone').setAttribute('value',phone);
        document.querySelector('input#password').setAttribute('value',password);

      //  document.querySelector('form').submit();
        }, { 

        phone    : ph,
        password : ps

      });


    })(phone_number,phone_password)
  
});

On Thursday, November 8, 2012 7:14:48 PM UTC+4, kanux02 wrote:

Nicolas Perriault

unread,
Nov 10, 2012, 2:14:50 AM11/10/12
to casp...@googlegroups.com
On Sat, Nov 10, 2012 at 1:04 AM, kanux02 <nmus...@gmail.com> wrote:

> Here is how I did what i want using closure

You can't do that, and it's not because of casper works but how javascript does.

Declare your vars at the top of your script:

var phone_number = casper.cli.get('phone');
var phone_password = casper.cli.get('password');

casper.start(); // ...

kanux02

unread,
Nov 10, 2012, 6:02:37 AM11/10/12
to casp...@googlegroups.com
What u mean by cant do that ? I know its javascript stuff .  Thanks .


On Thursday, November 8, 2012 7:14:48 PM UTC+4, kanux02 wrote:

Nicolas Perriault

unread,
Nov 10, 2012, 6:37:45 AM11/10/12
to casp...@googlegroups.com
On Sat, Nov 10, 2012 at 12:02 PM, kanux02 <nmus...@gmail.com> wrote:

> What u mean by cant do that ?

These two links may explain you things more accurately:

- http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
- http://stackoverflow.com/a/11957919/330911
Reply all
Reply to author
Forward
0 new messages