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.id
file with fix instruction. - user can now override with a project id of his/her choice.
- create
artifact/bin
directory 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.xlsx
andnexial-macro.xlsx
template files to support the use ofnexial-artifact-repair.cmd|sh
against 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 ofsearch
withreplace
. - 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 0
syntax.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.
amount
as negative value means to scroll backwards. - support simple “position” words for
x
andy
such asmiddle
,left
,right
,top
andbottom
. - 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
x
andy
such asmiddle
,left
,right
,top
andbottom
.
- ensure Winium driver and
notifu.exe
are not executed in non-Windows environment. - screenshots captured during the use of
desktop
commands are now assigned to the system variablenexial.lastScreenshot
, thus maintain consistency with screenshots captured during the use ofweb
commands, 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.delayBrowser
between 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 selectingempty
text. Alsotext
as{ALL}
toselect
all options for a multi-select<SELECT>
element.deselect(locator,text)
: supportstext
as{ALL}
todeselect
all selected options for a multi-select<SELECT>
element.