http://qs321.pair.com?node_id=1097056


in reply to Clicking a button with WWW::Mechanize

WWW::Mechanize can't execute Javascript but you can find what info is actually submitted (with Firebug) and submit same fields from your script with $mech->post(...); or $mech->submit_form(...);

Replies are listed 'Best First'.
Re^2: Clicking a button with WWW::Mechanize
by tel2 (Pilgrim) on Aug 12, 2014 at 07:43 UTC
    Thanks Gangabass.

    That approach would have been my preference, from looking at Anonymous Monk's posts, it may be too hard for me.

Re^2: Clicking a button with WWW::Mechanize
by tel2 (Pilgrim) on Aug 14, 2014 at 22:19 UTC
    Hi again Gangabass,

    Partly for those who may follow, I just thought I should report back that I did end up using your proposed method with Firebug, and didn't need PhantomJS. I clicked Firebug's "Net" option, then "Persist" and "All", then clicked the "Add to Report" (JavaScript) button on the webpage. Firebug then showed "POST addcclactivityfromsearch" in its "URL" column, so I pointed my mouse at that and it gave me a full URL (i.e. "http://olr.ccli.com/search/addcclactivityfromsearch"). I could then click that link and look under the "Post" tab to see parameters and values sent, (OR right-click the link and "Copy POST Parameters" and paste them where I like). From that, I was able to remove some redundant parameters, and write this code, which seems to be working fine.

    $rc = $m->post('http://olr.ccli.com/search/addcclactivityfromsearch', { 'ActivityIndex' => -1, 'DigitalCount' => $use, 'ReportingPeriod' => $period, 'SongUniqueId' => $songid, 'X-Requested-With' => 'XMLHttpRequest' });

    Thanks for pointing me in the right direction!

    I might still use PhantomJS someday, but have some outstanding issues, as you can see below, so I might need to raise them again, somewhere more...visible.

    tel2

      ... I did end up using your proposed method with Firebug ...

      Also mentioned in WWW::Mechanize::FAQ -- its just full of nuggets :)