Nexial Automation

Test Automation Platform for everyone!

X

web » selectDropdown(locator,optLocator,optText)

This command instructs Nexial to perform the following actions:

  1. Click on a “dropdown” element that matches locator. Upon doing so, a list of clickable elements (“options”) should be displayed. This list of “options” is denoted as optLocator.
  2. Click on one of the “option” elements which matches the specified optLocator and its text matches optText.

In effect, via this command Nexial simulates the selecting of an “option” from a dropdown (or combo) element, like the one shown below:

In order select an item from the dropdown (above), one would first click on the dropdown element and then the intended option underneath it. This command performs precisely these actions, with a few valuable caveats:

  1. This command ensures the existence of the intended dropdown element.
  2. Prior to clicking on the intended dropdown element, Nexial will attempt to scroll to the element so that it is visible on the page. Highlighting (via nexial.web.highlight) is also supported.
  3. After clicking on the intended dropdown element, this command internally waits for the dropdown option list to be loaded.
  4. This command support PolyMatcher (see below) when seeking for the appropriate dropdown option to select. For example, One may use CONTAIN:Manager to select the first option that contains the word Manager.

PolyMatcher Enabled

PolyMatcher - a flexible way to perform text matching

In addition to extract text matching (or string matching), this command/expression also supports "polymatcher" (as of v3.6). With polymatcher, one can instruct Nexial to match the intended text in a less exact (but more expressiveness) way. Here are the supported matching strategies:

  • CONTAIN:: Use this technique to perform partial text matches. For example: use CONTAIN:completed as intent for "matching text that contains the text ‘completed’".
  • CONTAIN_ANY_CASE:: Use this technique to perform partial text matches (same as CONTAIN:), except without considering the uppercase/lowercase variants. For example, CONTAIN_ANY_CASE:Successfully would match "Completed successfully", "Completed Successfully", and "COMPLETED SUCCESSFULLY".
  • START:: Use this technique to perform "starts with" text matches. For example, START:Greetings matches any text starting with the text "Greetings".
  • START_ANY_CASE:: Use this technique to perform "starts with" text matches without considering letter casing. For example, START_ANY_CASE:Greetings matches any text starting with the text "Greetings", "GREETINGS", "greetings", "greeTINGs", etc.
  • END:: Use this technique to perform "ends with" text matches. For example, END:Please try again. matches any text that ends with the text "Please try again.".
  • END_ANY_CASE:: Use this technique to perform "ends with" text matches without considering letter casing. For example, END_ANY_CASE:Please try again. matches any text that ends with the text "Please try again." in any combination of upper or lower case.
  • REGEX:: Use this technique to perform text matching via regular expression. For example: use REGEX:.+[S|s]uccessfully.* as intent for "matching text that contains 1 or more character, then either ‘Successfully’ or ‘successfully’, follow by zero or more characters.".
  • EMPTY:[true|false]: Use this technique to perform "is empty?" check. EMPTY:true means that the target value is expected to be empty (no content or length). EMPTY:false means the target value is expected NOT to be empty (with content).
  • BLANK:[true|false]: Use this technique to perform "is blank?" check. BLANK:true means that the target value is expected to contain blank(s) or whitespace (space, tab, newline, line feed, etc.) characters or empty (no content or length). BLANK:false means the target value is expected to contain at least 1 non-whitespace character. Note that this matcher includes te EMPTY: check as well.
  • LENGTH:: Use this technique to perform text length validation against target value. One may use a numeric comparator for added flexibility/expressiveness. For example: LENGTH:5 means to match the target value to a length of 5. LENGTH: > 5 means to match the target value to a length greater than 5. The available comparators are: >, >=, <, <=, =, !=.
  • NUMERIC:: Use this technique to perform numeric comparison/matching against target value. With this technique, 100 considered the same as 100.00 since both value has the same numerical value. One may use a numeric comparator for added flexibility/expressiveness. For example: NUMERIC:5 means to match the target value to the number 5. NUMERIC: <= -15.02 means to match the target value as a number that is less or equal to -15.02. The available comparators are: >, >=, <, <=, =, !=.
  • EXACT:: Use this to perform exact text matching, i.e. equality matching. In most cases, this is not required as the absence of any special keyword almost always means the "is this the same as that?" test. However in some special cases such as base » assertMatch(text,regex), one may use this EXACT: syntax to indicate match by equality instead of regular expression.
  • And, of course, one can still use the exact matching strategy by specifying the exact text to match.

We will be adding new strategy to polymatcher – Please feel free to request for new ones!


Note

  • While this command simulates the selecting of a dropdown option, it is not the same as select(locator,text), which targets the <SELECT> element.
  • “Dropdown” is not a standard HTML component, and there are many implementations of such component. Care should be taken in terms of devising the right locators for the dropdown element and the dropdown options.

Parameters

  • locator - the locator of the dropdown element.
  • optLocator - the locator of the dropdown options. This should be the locator that matches all options under the same dropdown.
  • optText - the text to match against the dropdown options. The first dropdown options with the matching optText will be clicked.

Example

Script:

See Also