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
:endcommand 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.propertiesto contain unique data variables; thus reduce misconfiguration or inconsistent behaviors- use
nexial.projectPropertiesDupsto fine-tune this control.
- use
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
- WEB &rauoq;
check(locator,waitMs): support customized time out - WEB &rauoq;
check(locator,waitMs): default time out to 2 sec instead ofnexial.pollWaitMs - WEB &rauoq;
uncheck(locator,waitMs): support customized time out - WEB &rauoq;
uncheck(locator,waitMs): default time out to 2 sec instead ofnexial.pollWaitMs - LIST »
findFirst(match): find first matching item. PolyMatcher supported - LIST »
retain(match): filter current LIST viamatchcriteria. PolyMatcher supported - WEB »
jsClick(locator): NEW operation to forcefully click via JavaScript instead of WebDriver click. nexial.expression.web.alwaysNew: NEW System variable to ensure each use of WEB expression clear off outcome from the WEB operations from previous use.- TEXT »
list(delim): support auto-resolving delimiter, if not provided. - TEXT »
list(data): convertnullinto empty list for simpler automation experience.
Nexial Function
$(projectfile|projectProperty|name): NEW function to read project propertynamefromproject.properties$(projectfile|projectProperty|name|value): NEW function to write project propertynamewithvalueintoproject.properties
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
- FIXED avoid capturing screenshot when underlying driver is not available or ready for use
contextMenu(name,menu,xOffset,yOffset): support keystroke between menu selectioncontextMenuByLocator(locator,menu,xOffset,yOffset): support keystroke between menu selection- extend custom data grid formatting:
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 deviceclick(locator): deliberately click on or very near the center of the specifiedlocator- initial support for BrowserStack integration completed. To enable, set
ios@browserstackorandroid@browserstackasprofile.type. At a minimum,profile.browserstack.username andprofile.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:
- nested result(s) can be access via the
.nestedproperty, which a list object. For example,${query-result}.nested[0].datawill return the data of the first nested query result. - affected the following commands:
- nested result(s) can be access via the
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 macroassertElementsVisible(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 matchclickByLabelAndWait(label,waitMs): click on first matching label without requiring that there is exactly 1 matchswitchBrowser(profile,config):- fixed error when switching back to DEFAULT (without
profilevalue). - force target browser instance to be focused
- fixed error when switching back to DEFAULT (without
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 elementslayer=...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
layerlocator
- 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.highlightis set totrue- 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
httptohttps nexial.web.secureBrowserStack: NEW System variable to enable/disable SSL connection to BrowserStack (default is enabled)
- update BrowserStack URL from
- CrossBrowserTesting:
- update CrossBrowserTesting URL from
httptohttps nexial.web.secureCrossBrowserTesting: NEW System variable to enable/disable SSL connect to CrossBrowserTesting (default is enabled)- minor logging improvements
- update CrossBrowserTesting URL from
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 theSELECTelement denoted bylocatorcontains the specifiedOPTIONlist.assertSelectOptionsAbsent(locator,options): NEW command to assert that theSELECTelement denoted bylocatorDOES NOT contain the specifiedOPTIONlist.- 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 headerupload(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 thebodyparameter.- FIXED detail log missing response return code
- FIXED Issue #15 fixed by removing double treatment of GraphQL payload.