nexial-core 2.6 (2019-09-06)
Release 2.6
2019-09-06
General
Fixes
nexial.lastScreenshot
: resolved to the fully qualified path (not just the filename). Also, this System variable will resolve to the appropriate URL ifnexial.outputToCloud
is set totrue
.- Fixed ConcurrentModificationException while shutting down the winium driver.
Improvements
nexial.lastElapsedTime
: record the elapsed time (in ms) for the last executed step (regardless of its PASS or FAIL status).nexial.outputToCloud
: automatically handles file-based resources so that whennexial.outputToCloud
is set to true, local file resources will be pushed to the cloud (and its link on the output xlsx be updated).- Added new column for plan detail and more summarized result in email notification html.
- minor updates to
nexial-project
batch files to reduce output. - minor improvement to trim directory name before validating its existence or usefulness.
Nexial Interactive
- support “range” specification for activity. Now it is possible to specify
5 1-4
to run 1st through 4th activities.
Built-in Functions
$(array)
: fixed previous erroneous parsing wherearray
is wrapped by{...}
and[...]
characters.$(array)
: fixed ascending and descending sorting of numbers.
Nexial Expression
- For TEXT expression, a new System variable,
nexial.expression.resolveUrl
, is available to disable the automatic content resolution of HTTP-based resource. This System variable is by default set totrue
. - CSV »
parse(configs)
: usenexial.textDelim
as CSV delimiter when none is explicitly specified. - CSV »
merge(csvVariable,refColumn)
: avoid merging empty or blank rows. - EXCEL »
firstCell(column,regex,maxRows)
: NEW operation to find the first cell in the specifiedcolumn
that satisfiesregex
. - LIST expression: fixed previous erroneous parsing where a list is wrapped between
{...}
or[...]
characters. - LIST »
ascending
and LIST »descending
: fixed ascending and descending sorting of list of numbers.
aws.vision commands
saveText(profile,image,var)
: NEW command to extract text from an image file. Supports JPG, PNG and GIF at this time. No animated GIF support for now.- support ‘system’ profile to simplify scripting for users using team-wide or company-wide setup
base commands
outputToCloud(resource)
: fix path resolution to S3 so that the target location mimics local directory structurenexial.assert.lenient
: System variable to join multiple lines into one before text assertion. Default istrue
.nexial.assert.asNumber
: System variable to activate the assertion that treats text1
as the same as1.0
. This is equivalent to numeric equality assertion. Default istrue
.nexial.assert.useTrim
: System variable to trim text before assertion. Default isfalse
.nexial.assert.caseInsensitive
: System variable to assert text case-insensitively. Default isfalse
.assertNotContain(text,substring)
:- renamed from
assertNotContains(text,substring)
(grammatically displeasing)
- renamed from
desktop commands
assertElementNotPresent(name)
: Assert absence of given desktop element.nexial.desktop.useTypeKeys
: convert winium shortcut keys to native keystrokes so that thetypeTextBox(...)
andtypeTextArea(...)
commands can be implemented viatypeKeys(os,keystrokes)
internally.
image commands
colorbit(image,bit,saveTo)
,convert(source,format,saveTo)
,crop(image,dimension,saveTo)
: now supportsource
as URL. Nexial will automatically download image content and save it to temporary location (OS-specific). UsesaveTo
to determine the location of the processed file.resize(image,width,height,saveTo)
: now supportimage
as URL. Nexial will automatically download image content and save it to temporary location (OS-specific). UsesaveTo
to determine the location of the processed file.saveDiff(var,baseline,actual)
: now support bothbaseline
andactual
as URL. Nexial will automatically download image content and save it to temporary location (OS-specific). UsesaveTo
to determine the location of the processed file.saveDiff(var,baseline,actual)
: added new System variable to support trimming off empty spaces from images before comparing.nexial.image.trimBeforeDiff
:true
(default isfalse
) to trim off spaces before comparing.nexial.image.trimColor
: empty space color to trim off. (default iswhite
). Available colors for trimming arered
,yellow
,blue
,green
,black
,white
.
json commands
assertEquals(expected,actual)
:- fixed inefficient and confusing comparison logic when
expected
andactual
do not have the same nodes or node names. - add new System variable to support CSV and HTML report format:
nexial.json.compareResultsAsJSON
:true
(default) to generate comparison result as JSON.nexial.json.compareResultsAsCSV
:true
(default isfalse
) to generate comparison result as CSV.nexial.json.compareResultsAsHTML
:true
(default isfalse
) to generate comparison result as HTML.
- fixed inefficient and confusing comparison logic when
localdb commands
importCSV(var,csv,table)
: code fix to support columns with spaces or commas. Also fixed to support(
and)
characters in column name.
ws commands
- fixed: handle url that contains “percent-encoding” by avoiding double-encoding error.
web commands
- DeepScan enabled for these commands:
saveTableAsCsv(locator,nextPageLocator,file)
saveDivsAsCsv(headers,rows,cells,nextPage,file)
saveInfiniteTableAsCsv(config,file)
saveInfiniteDivsAsCsv(config,file)
- automatically replace newline, carriage return and tab character with a space so that the generated CSV would be usable.
- Use
nexial.web.saveGrid.data.trim
to trim leading and trailing spaces of each cell. - Use
nexial.web.saveGrid.end.trim
to remove the trailing line feed at the end of the CSV file. - Use
nexial.web.saveGrid.deepScan
to control how Nexial should handle form input and image elements found in target<TABLE>
or<DIV>
elements. - Use
nexial.web.saveGrid.header.input
to determine what metadata of a form input element in the header to save to CSV. Possible choices:name
,type
,value
,id
,state
. - Use
nexial.web.saveGrid.header.image
to determine what metadata of an image element in the header to save to CSV. Possible choices:type
,alt
,id
,filename
. - Use
nexial.web.saveGrid.data.input
to determine what metadata of a form input element in the data section to save to CSV. Possible choices:name
,type
,value
,id
,state
. - Use
nexial.web.saveGrid.data.image
to determine what metadata of an image element in the data section to save to CSV. Possible choices:type
,alt
,id
,filename
. - code fix to properly handle data cell that contains a mix of cell text and form element.
saveDivsAsCsv(headers,rows,cells,nextPage,file)
: support non-XPATH locators.saveInfiniteDivsAsCsv(config,file)
andsaveInfiniteTableAsCsv(config,file)
:- NEW command to export data from an Infinite Scroll Table (IST) to CSV.
- improved on scanning and data collection logic.
- improved on usability by allowing for configurable
waitBetweenScroll
value. - supports long running headers that are rendered off-screen.
assertMultiSelect(locator)
: use to assert the select element support multiple select options.assertSingleSelect(locator)
: use to assert the select element support single select option.- System variable
nexial.screenshotAsDesktop
: NEW System variable to allow for desktop screen capturing instead of browser-scoped screen capturing. screenshot(file,locator,removeFixed
: NEW command to capture the graphical rendering of a Web element based on specifiedlocator
. Automatically upload screenshot to cloud ifnexial.outputToCloud
is set to `true.updateAttribute(locator,attrName,value)
: support to update the attribute of an element with given value for a specified locator.assertAttributeContains(locator,attrName,contains)
: supportREGEX:
incontains
to trigger regular expression matching.assertAttributeNotContain(locator,attrName,contains)
:- renamed from
assertAttributeNotContains(locator,attrName,contains)
(grammatically displeasing) - support
REGEX:
incontains
to trigger regular expression matching.
- renamed from
assertTextNotContain(locator,text)
:- renamed from
assertTextNotContains(locator,text)
(grammatically displeasing)
- renamed from