Dynamically Select Radio Button With Label "Alt Text"

Good morning,

I am trying to find a way to select a dynamic radio button that has static alt text on a web form. Below is a snippet from the web form, of which I want to select the radio button with the alt text of "8ball.png"

In the below case, each radio button has a div containing a label with the "label for=" containing the name of the input id to be selected.

  <div class="personalImageImageSetHolder" style="margin-left: 50px;">
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage0">
            
              <img src="/identitymanagement/content/0/loadAuthenticationImage.do" alt="USS-Kearsarge.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage0" name="personalImageIndex" type="radio" value="0">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage1">
            
              <img src="/identitymanagement/content/1/loadAuthenticationImage.do" alt="backhoe.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage1" name="personalImageIndex" type="radio" value="1">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage2">
            
              <img src="/identitymanagement/content/2/loadAuthenticationImage.do" alt="rooster.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage2" name="personalImageIndex" type="radio" value="2">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage3">
            
              <img src="/identitymanagement/content/3/loadAuthenticationImage.do" alt="chinook.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage3" name="personalImageIndex" type="radio" value="3">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage4">
            
              <img src="/identitymanagement/content/4/loadAuthenticationImage.do" alt="8ball.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage4" name="personalImageIndex" type="radio" value="4">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage5">
            
              <img src="/identitymanagement/content/5/loadAuthenticationImage.do" alt="blackhawk.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage5" name="personalImageIndex" type="radio" value="5">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage6">
            
              <img src="/identitymanagement/content/6/loadAuthenticationImage.do" alt="f-15.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage6" name="personalImageIndex" type="radio" value="6">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage7">
            
              <img src="/identitymanagement/content/7/loadAuthenticationImage.do" alt="flower2.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage7" name="personalImageIndex" type="radio" value="7">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage8">
            
              <img src="/identitymanagement/content/8/loadAuthenticationImage.do" alt="grapes.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage8" name="personalImageIndex" type="radio" value="8">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage9">
            
              <img src="/identitymanagement/content/9/loadAuthenticationImage.do" alt="gorilla.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage9" name="personalImageIndex" type="radio" value="9">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage10">
            
              <img src="/identitymanagement/content/10/loadAuthenticationImage.do" alt="stop.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage10" name="personalImageIndex" type="radio" value="10">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage11">
            
              <img src="/identitymanagement/content/11/loadAuthenticationImage.do" alt="monkey.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage11" name="personalImageIndex" type="radio" value="11">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage12">
            
              <img src="/identitymanagement/content/12/loadAuthenticationImage.do" alt="elephant.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage12" name="personalImageIndex" type="radio" value="12">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage13">
            
              <img src="/identitymanagement/content/13/loadAuthenticationImage.do" alt="ram.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage13" name="personalImageIndex" type="radio" value="13">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage14">
            
              <img src="/identitymanagement/content/14/loadAuthenticationImage.do" alt="crown.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage14" name="personalImageIndex" type="radio" value="14">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage15">
            
              <img src="/identitymanagement/content/15/loadAuthenticationImage.do" alt="cheetah.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage15" name="personalImageIndex" type="radio" value="15">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage16">
            
              <img src="/identitymanagement/content/16/loadAuthenticationImage.do" alt="butterfly.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage16" name="personalImageIndex" type="radio" value="16">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage17">
            
              <img src="/identitymanagement/content/17/loadAuthenticationImage.do" alt="combine-in-field.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage17" name="personalImageIndex" type="radio" value="17">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage18">
            
              <img src="/identitymanagement/content/18/loadAuthenticationImage.do" alt="platoon-sergeant.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage18" name="personalImageIndex" type="radio" value="18">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage19">
            
              <img src="/identitymanagement/content/19/loadAuthenticationImage.do" alt="cherry-blossom.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage19" name="personalImageIndex" type="radio" value="19">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage20">
            
              <img src="/identitymanagement/content/20/loadAuthenticationImage.do" alt="parachute.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage20" name="personalImageIndex" type="radio" value="20">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage21">
            
              <img src="/identitymanagement/content/21/loadAuthenticationImage.do" alt="balloons.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage21" name="personalImageIndex" type="radio" value="21">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage22">
            
              <img src="/identitymanagement/content/22/loadAuthenticationImage.do" alt="closed.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage22" name="personalImageIndex" type="radio" value="22">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage23">
            
              <img src="/identitymanagement/content/23/loadAuthenticationImage.do" alt="apple.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage23" name="personalImageIndex" type="radio" value="23">
        </div>
    </div>
  
    <div class="personalImageImageHolder">
        <div class="imageHolder">
            <label for="personalImage24">
            
              <img src="/identitymanagement/content/24/loadAuthenticationImage.do" alt="guinea-pig.png">
            </label>
        </div>
        <div class="radioHolder">
            <input id="personalImage24" name="personalImageIndex" type="radio" value="24">
        </div>
    </div>
  
  </div>
  <div class="formbuttons">
  <br>
   <input type="submit" id="verifyButton" class="button btn btn-primary" name="_eventId_verify" value="Continue">
   <input type="submit" id="dummybtn1" class="button btn btn-primary" disabled="disabled" style="display:none;" value="Continue">
   
   <input type="submit" id="cancelButton" class="button btn btn-default" name="_eventId_cancel" value="Cancel"> 
   <input type="submit" id="dummybtn2" class="button btn btn-default" disabled="disabled" style="display:none;" value="Cancel"> 

   <img src="/identitymanagement/themes/default/images/loading.gif" width="50" style="display: none; margin:auto; padding-top:10px;" id="ImageSubmitLoadingImage" alt="loading image">

    
 </div>
</div>

Based on your HTML code, this works for me.

Below is just an example written in response to your request. You will need to use as an example and/or change to meet your workflow automation needs.

Please let us know if it meets your needs.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

MACRO:   Click Radio Button Based on Image Alt Text [Example]

-~~~ VER: 1.0    2021-07-14 ~~~
Requires: KM 8.2.4+   macOS 10.11 (El Capitan)+
(Macro was written & tested using KM 9.0+ on macOS 10.14.5 (Mojave))

DOWNLOAD Macro File:

Click Radio Button Based on Image Alt Text [Example].kmmacros
Note: This Macro was uploaded in a DISABLED state. You must enable before it can be triggered.


ReleaseNotes

Author.@JMichaelTX

PURPOSE:

  • Click Radio Button Based on Image Alt Text [Example]

HOW TO USE

  1. First, make sure you have followed instructions in the Macro Setup below.
  2. See the below "How to Use" Comment Action
  3. This macro is just an example written in response to your request. You will need to use as an example and/or change to meet your workflow automation needs.

MACRO SETUP

  • Carefully review the Release Notes and the Macro Actions
    • Make sure you understand what the Macro will do.
    • You are responsible for running the Macro, not me. ??
      .
      Make These Changes to this Macro
  1. Assign a Trigger to this Macro .
  2. Move this macro to a Macro Group that is only Active when you need this Macro.
  3. ENABLE this Macro, and the Macro Group it is in.
    • For more info, see KM Wiki article on Macro Activation
      .
  • REVIEW/CHANGE THE FOLLOWING MACRO ACTIONS:
    (all shown in the magenta color)
    • SET Alt Text
      • of Image associated with Radio Button to be clicked

REQUIRES:

  1. KM 9.0+ (may work in KM 8.2+ in some cases)
  2. macOS 10.12.6 (Sierra)+

TAGS: @Example

==USE AT YOUR OWN RISK==

  • While I have given this a modest amount of testing, and to the best of my knowledge will do no harm, I cannot guarantee it.
  • If you have any doubts or questions:
    • Ask first
    • Turn on the KM Macro Debugger from the KM Status Menu, and step through the macro, making sure you understand what it is doing with each Action.

1 Like

My apologies for the delayed response, I thought I had subscribed to the post.

This works beautifully and I can't thank you enough! This will really help me out with a few websites.

1 Like