nexial-core 2.5 (2019-08-07)
Release 2.5
2019-08-07
General
Fixes
- Multiple fixes to clarify error messages:
- when screenshot cannot be taken due to underlying WebDriver being unavailable.
- when Nexial Expression cannot be properly evaluated due to data error.
- duplicated error messages reduced.
- avoid console pause when executing in zero-touch environment (like unit testing or Jenkins).
- Fixed variable list indexing issue for the files.
- reduce duplicate 3rd-party libraries.
nexial-project.sh|cmd:- fixed the “ECHO is off” issue.
- Nexial now detects “bad” project id in
.meta/project.idfile with fix instruction. - user can now override with a project id of his/her choice.
- create
artifact/bindirectory when generating project structure.
Improvements
- add Jenkins environment variables in execution summary.
- create alternative screen capture capability in case we can’t capture screen via WebDriver of Winium driver.
- increased more formatted rows in
nexial-script.xlsxandnexial-macro.xlsxtemplate files to support the use ofnexial-artifact-repair.cmd|shagainst damaged XLSX files that are larger in size.
Nexial Expression
- JSON »
keys(jsonpath): extract immediate keys of resolved JSON fragment based onjsonpath. - EXCEL »
replace(search,replace): Of all the cells captured throughread(sheet,range), replace all instances ofsearchwithreplace. - NUMBER » whole: code fix so that fractional numbers are properly converted to whole numbers.
- fixed issue of expressions with multiple closed square bracket.
Flow Control
has file-size: now support non-existent file viahas file-size 0syntax.not contain: handle text delimiter being used as control.contain: handle text delimiter being used as control.- support open and close brackets
(and)in the flow control filter conditions. For e.g.SkipIf(${var} match ^(nexial|Nexial)$).
base commands
- console output changes/improvements over multiple assert commands. Now FAILed assertion will display multi-line output that should be easier to decipher.
- base »
repeatUntil(steps,maxWaitMs): Fixed the error thrown when capturing screenshot within a loop.
desktop commands
typeKeys(os,keystrokes):- fixed the simulation of certain “symbol” keystrokes. This enables the typing of fully qualified file path that
contains slashes (
\or/) and colons (:). - support the use of
*foros(meaning any OS). - support UPPERCASE and non-alphanumeric symbol typing.
- EXPERIMENTAL speeding up key-typing by removing any between-keys delay and waits.
- fixed the simulation of certain “symbol” keystrokes. This enables the typing of fully qualified file path that
contains slashes (
mouseWheel(amount,modifiers,x,y):- NEW command to simulate mouse wheel movement.
amountas negative value means to scroll backwards. - support simple “position” words for
xandysuch asmiddle,left,right,topandbottom. - restricted to Windows for now.
- NEW command to simulate mouse wheel movement.
clickScreen(button,modifiers,x,y):- NEW command to simulate mouse click based on current screen (not AUT).
- support simple “position” words for
xandysuch asmiddle,left,right,topandbottom.
- ensure Winium driver and
notifu.exeare not executed in non-Windows environment. - screenshots captured during the use of
desktopcommands are now assigned to the system variablenexial.lastScreenshot, thus maintain consistency with screenshots captured during the use ofwebcommands, and to provide additional automation via such system variable.
json commands
storeKeys(json,jsonpath,var): extract immediate keys of resolved JSON fragment based onjsonpath.
localdb commands
importCSV(var,csv,table): supports scenarios where table structure and the CSV file to import are not equivalent. Also support the use of default value as defined for the target table.
number commands
whole(var): code fix so that fractional number is properly converted to whole number.
ws commands
- fix URL by replacing special characters (like space and
&) with the appropriate encoding.
web commands
saveText(var,locator): clarify output message when no text is saved due to invalid or missing locator.- Selenium-backed error messages are shorten to just the first line when possible to streamline error messages.
- honor
nexial.delayBrowserbetween plan steps so that Nexial won’t inadvertently load WebDriver before it is necessary. - support screen capturing using native approach so that we can capture JavaScript dialog/popup or other native dialogs (such as “Open File” and “Save As”). This is also the screen capturing alternative when the specific WebDriver fails.
select(locator,text): supports selectingemptytext. Alsotextas{ALL}toselectall options for a multi-select<SELECT>element.deselect(locator,text): supportstextas{ALL}todeselectall selected options for a multi-select<SELECT>element.