Nexial Automation

Test Automation Platform for everyone!

X

nexial-core 4.3 (2021-12-05)

Release 4.3

2021-12-05

General

Fixes

  • FIXED issue with selecting data variables from the same prefix while running macro
  • FIXED runtime error when a condition within a flow control resolved to null
  • FIXED issuing of a :end command during Inspect to end repeat-until loop and macro
  • FIXED gracefully handle invalid crypt

Improvements

  • minor batch and shell script changes to support Java 17.
  • nexial.disableCriticalCommands: NEW System variable to temporarily disable critical command failure check.
  • nexial.inspectOnPause: now support “end immediate” via :end.
  • nexial.recordingAutostart: NEW System variable to automatically start desktop (main screen) recording when execution starts. Future Nexial releases will support automatic screen recording at the start of a script, an iteration or a scenario. Stay tuned!!
  • execution-output.html:
    • added screen recording as videos in execution report.
    • added web service summary and detail logs in execution report for interactive analysis
    • fresh redesign of execution summary for improved dashboard view.
  • reduce log severity from ERROR to WARN for side-effect or triggered down errors.
  • enforce project.properties to contain unique data variables; thus reduce misconfiguration or inconsistent behaviors

Batch Files

  • nexial-swagger: command that generates an automation script and corresponding artifacts to validate the Restful API operations defined in the Swagger file passed in as input.

Expression

Nexial Function

Nexial Interactive

  • reset screenshot capability when switching scenario to avoid the wrong type of screenshot capturing
  • added new functionality to (1) clear out temp files, and (2) open output directory
  • slightly improved menu to reduce visual footprint on console
  • remove functionality no longer needed

desktop commands

external commands

javaui commands

mobile commands

  • selectLocalFile(device,folder,filename):
    • handle different types of file display (grid vs list) during automation.
    • minor fixes for an edge condition.
  • type(locator,text): avoid clearing text boxes when it contains no text.
  • home(): fixed issue with iOS device
  • click(locator): deliberately click on or very near the center of the specified locator
  • initial support for BrowserStack integration completed. To enable, set ios@browserstack or android@browserstack as profile.type. At a minimum, profile.browserstack.username and profile.browserstack.automatekey are required to enable BrowserStack integration.
  • FIXED for BrowserStack automation, avoid unnecessarily relaunching target application

rdbms commands

  • improved support for nested query results:

web commands

  • assertCssPresent(locator,property,value):
    • now supports validation of computed CSS rather than just declared values. Also support automatically color value conversion for more accurate comparison.
    • also handle named color and special color name transparent.
  • assertElementDisabled(locator): circumvent Selenium’s limitation by adding JavaScript check on whether an element is disabled or not.
  • assertElementsPresent(prefix): fixed issue with selecting data variables from the same prefix while running macro
  • assertElementsVisible(prefix): NEW command to assert that a series of web elements are visible.
  • assertElementsVisible(prefix): NEW command to assert that a series of web elements are enabled for interaction. This is mostly applicable to form elements.
  • clickByLabel(label): click on first matching label without requiring that there is exactly 1 match
  • clickByLabelAndWait(label,waitMs): click on first matching label without requiring that there is exactly 1 match
  • switchBrowser(profile,config):
    • fixed error when switching back to DEFAULT (without profile value).
    • force target browser instance to be focused
  • type(locator,text):
    • performance improvement when clearing out existing text in React-like text boxes or text areas.
  • waitUntilDisabled(locator,waitMs): circumvent Selenium’s limitation by adding JavaScript check on whether an element is disabled or not.
  • LOCATORS
    • text=... locator: NEW locator to simplify the referencing of text-centric web elements
    • layer=... locator: NEW locator to optimize the use of existing locators across multiple DOM layers
      • minor fixes
      • FIXED address issue with invalid intermediate locator for the layer locator
  • SYSTEM VARIABLES
    • nexial.browser.forceJSDoubleClick: NEW System variable to control how a double-click automation should be carried out. Default (false) is to use underlying WebDriver, not Javascript
      • FIXED removed misinterpretation of the return of a JS double click
    • nexial.web.useComputedCss: NEW System variable to support the discovery of computed CSS value rather than the declared CSS values (default)
    • nexial.web.highlight is set to true
      • FIXED background not being removed after successive highlighting on the same element when
  • FIXED avoid capturing screenshot when underlying driver is not available or ready for use
  • BrowserStack:
    • update BrowserStack URL from http to https
    • nexial.web.secureBrowserStack: NEW System variable to enable/disable SSL connection to BrowserStack (default is enabled)
  • CrossBrowserTesting:
    • update CrossBrowserTesting URL from http to https
    • nexial.web.secureCrossBrowserTesting: NEW System variable to enable/disable SSL connect to CrossBrowserTesting (default is enabled)
    • minor logging improvements
  • saveCssValue(var,locator,property): NEW command to store CSS value of a web element to a data variable.
  • assertSelectOptionsPresent(locator,options): NEW command to assert that the SELECT element denoted by locator contains the specified OPTION list.
  • assertSelectOptionsAbsent(locator,options): NEW command to assert that the SELECT element denoted by locator DOES NOT contain the specified OPTION list.
  • FIXED reduce scrolling by checking if the target element is already visible within current page boundary
  • clickIfPresent(locator): NEW command that clicks on an element only if it can be found.

webmail commands

  • adding the provision to extract the link(url) in the email body based on the label name.

ws commands

  • oauthProfile(var,profile): add missing implementation to set auth token to HTTP header
  • upload(url,body,fileParams,var): support multiple HTTP methods and toggling of multipart via the [nexial.ws.upload.method] and [nexial.ws.upload.multipart] System variables respectively. Note that both of these System variables must be specified as part of the body parameter.
  • FIXED detail log missing response return code
  • FIXED Issue #15 fixed by removing double treatment of GraphQL payload.