nexial-core 3.7 (2021-03-01)
Release 3.7
2021-03-01
General
Fixes
- fixed Excel output so that only the first 500 characters will be stored for the parameter values.
Configurable via
nexial.maxConsoleDisplay
. - logic fix when dealing with nested steps in macro
System Variable
- deprecated
nexial.desktopNotifyWaitMs
in favor ofnexial.desktop.notifyWaitMs
for consistency.
Nexial Interactive
- support inspection and basic step-by-step automation for desktop application:
DESKTOP(xpath)
to inspect desktop element by XPATH.DESKTOP(xpath) => click
to click on a desktop element by XPATH.DESKTOP(xpath) => doubleclick
to double click on a desktop element by XPATH.DESKTOP(xpath) => type(text)
to type on a desktop element by XPATH.DESKTOP(name)
to inspect desktop element by a component name in the current form.DESKTOP(name) => click
to click on a desktop element by a component name in the current form.DESKTOP(name) => doubleclick
to double click on a desktop element by a component name in the current form.DESKTOP(name) => type(text)
to type on a desktop element by a component name in the current form.DESKTOP(app) => menu(label,label,...)
to simulate the activation of menu/menus via label/labels. For example,DESKTOP(app) => menu(File,Open)
DESKTOP(xpath) => context(label,label,...)
to trigger context on a desktop element.DESKTOP(name) => context(label,label,...)
to trigger context on a desktop element.
- minor improvement on console output for Inspect.
Expression
- EXCEL »
renameSheet
: NEW operation to rename worksheet. - LIST »
removeMatch(match)
: NEW operation to remove from aLIST
the items that match the specifiedmatch
criteria. - LisT »
item(indices)
: support multiple indices (to concatenate specified items into 1 text) and the use ofrandom
to randomly select one of the available item. - TEXT »
removeRegex(regex)
: Now supports multi-line text and case-insensitive pattern matching. - TEXT »
removeLine(match)
: PolyMatcher-based operation to remove one or more lines from a TEXT expression.
desktop commands
- General Improvements:
- enhanced support for “older” applications that require (or prefer) ASCII-based key mapping, especially for function
and control keys such as
{BACKSPACE}
and{ESCAPE}
. Setnexial.desktop.useAsciiKey
totrue
to enable this feature. - added
[CONTEXT]
key map to support shortcut key for context menu (Windows only). - improved keyboard automation by utilizing Winium’s internal “shortcut” script.
- additional support for “FormattedTextbox” to avoid data type conversion issue.
- post-edit validation now will performance numeric comparison if both before-edit and after-edit value can be
converted into number. For example,
100.00
would be considered as100
. - logic to avoid double “clear field” action; minor speed improvement.
- improvement on the repeated typing over the same component:
- One can now use
[ctrl-end]
to append text to the end of existing text. - Nexial automatically translate newline as
[ENTER]
. - Also some performance improvements. This impact the following commands:
typeTextArea(name,text1,text2,text3,text4)
typeTextBox(name,text1,text2,text3,text4)
- One can now use
waitForLocator(locator,maxWaitMs)
: code fix to continue waiting for specified element until specified time out.
- enhanced support for “older” applications that require (or prefer) ASCII-based key mapping, especially for function
and control keys such as
- NEW commands to perform double click.
clickMenuByLocator(locator,menu)
: NEW command to trigger application menu via alocator
.- support the triggering of menu via the index of the target menu item (use
INDEX:
prefix) in combination with the use of menu label. For example,File,INDEX:2,Open Last...
.
- support the triggering of menu via the index of the target menu item (use
- NEW commands to trigger context menu (i.e. right-click) on a desktop element:
contextMenuByLocator(locator,menu)
contextMenu(name,menu)
- support the triggering of context menu via index (prefix with
INDEX:
) in combination with menu item label. For example,File,INDEX:2,Open Last...
.
- NEW commands capture the screenshot of the specified element:
- Autoscanning Improvements:
- improves autoscanning process with better support for Infragistics 4 components.
- support the use of data variable in the “Aut” section of “application.json”.
- support for special/rare case of Combo box component containing only Radio component(s).
nexial.desktop.autoscan.verbose
: NEW System variable to enable console logging during autoscanning.- capture component name as label for Tab element.
- support “deeper” scanning of Tab items in case they are not placed directly underneath a Tab element.
- additional support for Infragistics 4 components:
- support the use of TreeView-based datagrid on the
table
-related commands such asassertTableRowContains(row,contains)
,saveAllTableRows(var,csv)
andeditTableCells(row,nameValues)
. - support various types of Combo via common set of
combo
-related commands:selectCombo(name,text)
: supports “single-select”, “multi-select” and “type-ahead” combo boxesassertSelected(name,text)
: supports “single-select”, “multi-select” and “type-ahead” combo boxes
- support the use of TreeView-based datagrid on the
- Improved Data Grid Support
- code fix to use the correct driver script for grid data edits.
- performance improvement over the editing of data grid and fetching of data from a data grid.
- performance improvement over the reading of data grid content.
- added data grid to CSV support for the following commands (useful for further data processing):
- support PolyMatcher: for the following commands:
- Improved Radio/Check support
assertChecked(name)
: supports both Checkbox and Radio component.assertNotChecked(name)
: supports both Checkbox and Radio component.saveText(var,name)
: support “CheckBox” and “Radio” component so that checked state would result inTrue
as its text, andFalse
if such component is unchecked.saveTextByLocator(var,locator)
: support “CheckBox” and “Radio” component so that checked state would result inTrue
as its text, andFalse
if such component is unchecked.
excel commands
renameSheet(file,worksheet,newName)
: NEW command to rename worksheet.
localdb commands
importCSV(var,csv,table)
: fix code to support headers with special characters and data with single quote (now escaped).
web commands
dragAndDrop(fromLocator,toLocator)
:- updated to support Angular/Material-based tree node components.
- updated to support native mouse event, which is required when start of a drag-and-drop event also trigger drastic changes to the underlying DOM structure.
dragTo(fromLocator,xOffset,yOffset)
:- updated to support native mouse event, which is required when start of a drag-and-drop event also trigger drastic changes to the underlying DOM structure.