Maany has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks, I have the following html code, I have been trying to figure out a way to click the second radio button using WWW::Mechanize::firefox
<input type="radio" name="user" id="Te" data-first-clickable="true" ar +ia-label="Teacher" checked="checked"> <input type="radio" name="user" id="St" data-first-clickable="true" ar +ia-label="Student">
here is what I've tried so far
$mech->click_button( id => 'St' ); #didn't work $mech->click( id => 'St' ); #didn't work $mech->click({ xpath => '//*[@name="user"]' }); # WORKED ! BUT clicked + the first one not the second $mech->click({ xpath => '//*[@id="St"]',synchronize => 0}); #didn't wo +rk $mech->eval_in_page('document.getElementById("St").checked = checked;' +); #didn't work $mech->submit_form( with_fields => { user => 'St', }, ); #didn't work
how can I select the second radio, and I am using Mechanize::Firefox because once you click this radio button it executes a java script to expand a frame and show login fields. thank you for your time and help :)

Replies are listed 'Best First'.
Re: Clicking a radio button Mechanize::Firefox
by Corion (Patriarch) on Mar 02, 2018 at 07:43 UTC

    Maybe if you want to click the second one, tell XPath:

    $mech->click({ xpath => '//input[@value="Student"]' });

    Also, your call to ->eval_in_page contains invalid Javascript and thus likely didn't work. But you didn't tell us how it failed, so that's just a guess.

Re: Clicking a radio button Mechanize::Firefox
by Anonymous Monk on Mar 01, 2018 at 23:46 UTC

    Hi,

    How many  id="St" exist in the webpage?