5.0 Support for Dynamic Controls

SecureLogin provides a flexible single sign-on solution by allowing user to choose what to do when an application generates a message. The application definitions of SecureLogin provides full control on the single sign-on environment. You can use application definition to interact with controls present in a window and specify desired input. Controls are the UI elements that require user interaction, these include text fields, radio button, check boxes etc. SecureLogin needs to identify the controls correctly before performing single sign-on for any window. SecureLogin identifies the controls using the control matching. To match the controls, in JavaSSO and DotNetSSO, SecureLogin navigates through the window using Z-order and assigns control IDs in the increasing order that allows writing/generating of the single sign-on scripts. In WinSSO, Z-order or the existing control IDs are used to match the controls. When the window is opened next time, the application definition matches the controls using the same Z-order or control IDs and verifies the controls. When a control is successfully matched, SecureLogin provides single sign-on using scripts.

There are certain controls that do not appear at the same place in the window. It can breaks the order that SecureLogin identified initially. It can be caused by hidden elements in the window or addition of a new control. SecureLogin application definition commands and wizard can identify these dynamic controls and provides single sign-on. These commands provide the following capabilities:

  • Using single Dialog/EndDialog matching script to provide single sign-on to windows that changes order of controls. It uses the class, name, value or type attributes to identify the dynamic controls.

  • Provides better control match when using WinSSO, JavaSSO and DotnetSSO workers.

  • MatchElement and MatchOption are the dialog specifier commands that are used with other commands to interact with new attributes and achieve desired single sign-on scripts. For example, ReadInput command can be used to define an action in the script after reading an input from user.

Make a note of the following points when you use the MatchElement command:

  1. The command selectors must be specified at the beginning of the command. For example, MatchElement #<id>, here # is the selector. The MatchElement command supports following selectors:

    Selector

    Example

    Example Description

    #ID

    MatchElement #login #10

    Matching element using ID.

    .Class

    MatchElement #login .10

    Matching element using class.

    :nth-of-type()

    MatchElement #login :nth-of-type(10)

    Matching the order.

    Value

    MatchElement #login value=10

    Matching the element value.

    Visible

    MatchElement #login [value='Login'] [visible=true]

    Matching the element visibility.

    (space)

    MatchElement #ID <parent> <child>

    Matching the child element of a parent element. You can apply any match on both parent and child elements.

    -optional

    MatchElement #combo ComboBox -optional

    Allows optional matching of elements. It allows script execution even when the control does not match.

  2. The class matching, order matching and ID matching can be specified in any order. For example, the following two commands are in different order but provides same result.

    MatchElement #login EditBox#1001:nth-of-type(2).TEdit
    MatchElement #login EditBox.TEdit#1001:nth-of-type(2)
  3. You must specify type matching while using :nth-of-type. For example:

    MatchElement #username EditBox:nth-of-type(2)
  4. You must specify exact matching criteria. For example, in the command mentioned below, it will match the first button available.

    MatchElement #button Button
  5. You must use Value and Visible at the end of the command.

  6. The class names can contain special characters. For example, #, . (dot) or (space) etc. In such scenarios, use \ to escape these special character, see the following example.

    MatchElement #password EditBox#textPassword.WindowsForms10\.EDIT\.app\.0\.259f9d2
  7. Following are the examples for common dynamic controls using MatchElement.

    Combobox or Listbox: MatchElement #Combo ComboBox#cmbServerMatchOption #Combo:1 -text "Server5"SelectOption #Combo -clearSelectOption #Combo:1 -select "true"

    Editbox: MatchElement #username "EditBox#textUsername"TextInput #N07F3E088N0087A1B8 "DemoUser"

    Button: MatchElement #login "Button#btnLogin"ClickInput #login

    CheckBox or RadioButton: MatchElement #remember "CheckBox#checkRemember"BooleanInput #remember "checked"

Use the following set of commands for dynamic controls to achieve a more flexible single sign-on solution.