in reply to Re^4: How do I click Javascript button with Win32::IE::Mechanize
in thread How do I click Javascript button with Win32::IE::Mechanize

rshrivaQ,

Have you declared my $ie = Win32::IE::Mechanize->new(); in your code? Post what you have so that we can better help you with this issue. Please remember to format your post properly, as previously discussed.

Update: Also, did you notice that in my previous reply I suggested looking at the $ie->follow_link() method?

Thanks

Martin

Replies are listed 'Best First'.
Re^6: How do I click Javascript button with Win32::IE::Mechanize
by rshrivaQ (Initiate) on Dec 20, 2007 at 11:19 UTC
    here is the code
    use strict; use Win32::IE::Mechanize; my $ie = Win32::IE::Mechanize->new( visible => 1 ); my $url ='http://url/'; my $ie = $ie->get( $url ); my $ie->find_link (url=>"javascript:subForm('UA_Signin','signOff')";
    I am not sure how to use follow_link(), Is it correct ..? $ie->follow_link (url=>"javascript:subForm('UA_Signin','signOff'); Thanks
      Did you try running your code?
      #!/usr/bin/perl use strict; use warnings; #added by me use Win32::IE::Mechanize; my $ie = Win32::IE::Mechanize->new( visible => 1 ); my $url ='http://url/'; my $ie = $ie->get( $url ); my $ie->find_link (url=>"javascript:subForm('UA_Signin','signOff')";
      Returns
      "my" variable $ie masks earlier declaration in same scope at ftp.pl li +ne 9. "my" variable $ie masks earlier declaration in same scope at ftp.pl li +ne 10. syntax error at ftp.pl line 10, near ""javascript:subForm('UA_Signin', +'signOff') ";" Execution of ftp.pl aborted due to compilation errors.
      First of all, you need to learn some basic Perl. Look at my, as the error message above shows, you don't need to re-declare $ie every time you make a reference to it.

      Secondly look at $ie = $ie->get( $url );. I think you mean to use $ie->get($url);.

      Thirdly, I suggested that you use:
      $ie->follow_link
      rather than:
      $ie->find_link.
      Also you have:
      $ie->find_link (url=>"javascript:subForm('UA_Signin','signOff')";
      rather than:
      $ie->find_link(url => "javascript:subForm('UA_Signin','signOff')");

      Putting this all together you can see a basic example:
      #!/usr/bin/perl # Win32::IE::Mechanize example, go to www.google.co.uk follow link 'Ab +out Google' use strict; use warnings; use Win32::IE::Mechanize; my $ie = Win32::IE::Mechanize->new( visible => 1 ); my $url ='http://www.google.co.uk/'; $ie->get($url); $ie->follow_link(text => 'About Google'); # This the line that you nee +d to change, I will leave that to you as an exercise
      I would suggest you send time in the tutorials section of this site, and understanding the module documentation.

      Hope this helps

      Martin
        I checked your script(which you gave as example) it's working, But still having some problem in my script.Please check
        #!/usr/bin/perl use strict; use warnings; use Win32::IE::Mechanize; my $ie = Win32::IE::Mechanize->new( visible => 1 ); my $url ='http://url/go'; $ie->get( $url ); $ie->follow_link (text =>"subForm('UA_Signin','signOff')")|| die"can't + find text $!"; # $ie->find_link (url=>"javascript:subForm('UA_Signin','signOff')");
        I checked it with other options
        #$ie->find_link (number=>2); # $ie->find_image(image =>"ua/images/button-signoff.gif")|| die"can't + find image$!"; # $ie->find_image(alt =>" ")|| die"can't find image$!";
        One thing i want to let you know while hitting on signoff button (or reference) manually ,page moves to login page but the url (at address bar)does not get changed. Hope it will help you to find out my solution. Thanks