nexial-core 1.6 (2018-10-08)
Release 1.6
2018-10-08
General
- upgraded to Kotlin 1.2.70
- upgraded to nexial-seeknow-1.2. Supports sikulix-1.1.3.
- support default output directory via environment variable
NEXIAL_OUTPUT
- support “ignored variable” via NEW System variable
nexial.var.ignored
. - code fix to support newer version of WPS (post-execution to open result automatically)
- prevent open results in CI/CD env.
- configurable JVM max memory via NEXIAL_MAX_MEM environment variable.
- exclude empty log files as links in execution summary
- include data variables specified via
JAVA_OPT
in execution summary - (Linux/MacOSX only) store the batch file used to execute Nexial in the execution output directory. Good for troubleshooting.
- prevent runtime error when WPS is selected as the spreadsheet program and the execution is conducted on Mac/Linux.
- fixed error regarding iteration data when
nexial.fallbackToPrevious
is set tofalse
. Now Nexial correctly resolves data variable in the appropriate iteration definition, as specified in the data sheet.
Nexial Filter
- ` not contain
: **NEW** filter to support the
${…}` not contain “…” filter. - ` not start with
: **NEW** filter to support the
${…}` not start with “…” filter. - ` not end with
: **NEW** filter to support the
${…}` not end with “…” filter.
Built-in Function
$(array|length)
: added logic to compensate for web element array with characters that might be misinterpreted as array delimiter. Now it should be safe/correct to issue:
web | saveElements(var,locator) | MyList | //div
number | assertEquals(num1,num2) | 53 | $(array|length|${MyList})
$(execution|step)
: added new built-in function param to have step level metadata like activity, description, command etc.$(format|base64decode|text)
- base64 decodetext
.$(format|base64encode|text)
- base64 encodetext
.
Nexial Expression
[LIST(...) => count]
: added logic to compensate for web element array with characters that might be misinterpreted as array delimiter. Now it should be safe/correct to issue:web | saveElements(var,locator) | MyList | //div
number | assertEquals(num1,num2) | 53 | [LIST(${MyList}) => count]
[EXCEL(...) => csvWithHeader]
: convert a contiguous cell range (from Excel worksheet) to aCSV
where the first range is treated as header.[EXCEL(...) => json(firstRowAsHeader)]
: convert a contiguous cell range (from Excel worksheet) to aJSON
where the first range may be treated as header to impact the output JSON structure.save()
operation now supports appending content to existing file.XML
expression updated with new operations:attribute(xpath,name)
- retrieves the value ofname
attribute from the element(s) that matched the specifiedxpath
. If exactly one match is found, this operation returns aTEXT
data type. If more than one matches are found, aLIST
data type is returned instead.content(xpath)
- retrieves the content of the element(s) that matched the specifiedxpath
. If exactly one match is found, this operation returns aTEXT
data type. If more than one matches are found, aLIST
data type is returned instead.count(xpath)
- counts the number of elements present at the specifiedxpath
.extract(xpath)
- transform current XML document usingxpath
.remove(xpath)
- remove from the source XML the element(s) that matches the specifiedxpath
.store(var)
- save current XML expression to a data variable. If the specifiedvar
exists, its value will be overwritten. Using this operation, one can put an expression on pause and resume it at a later time.text
- transform current XML document into its textual representation.updateAttribute(xpath,name,value)
- also known asupdate-attribute(xpath,name,value)
. This operation updates the attribute of all matched elements based onname
andvalue
. Ifvalue
is empty, then the target attributes are effectively removed.updateContent(xpath,content)
- also known asupdate-content(xpath,content)
. This operation updates ( technically speaking, replace) the content of the matched elements with the specifiedcontent
.content
may be text or XML nodes. Ifcontent
is empty, then the content of the target elements are effectively removed.
TEXT
expressionbase64decode
- base64 decode text.base64encode
- base64 encode text.
base commands
saveCount(text,regex,saveVar)
: NEW command to save the number of matches (based onregex
) found intext
.- add code to automatically shut down screen recording at the end of an execution.
desktop commands
- code fix to get text from the disabled combo type element.
excel commands
assertPassword(file)
: NEW command to assert if a password is set to Excel file.clearPassword(file,password)
: NEW command to clear the password from Excel file.setPassword(file,password)
: NEW command to set a password to Excel file.csv(file,worksheet,range,output)
: NEW command to convert a contiguous cell range (from Excel worksheet) to a CSV file (output
).json(file,worksheet,range,header,output)
: NEW command to convert a contiguous cell range (from Excel worksheet) to a JSON file (output
).csv(file,worksheet,range,output)
: support multiple ranges.columnarCsv(file,worksheet,ranges,output)
: support merging of multiple ranges from the same worksheet. The merge is performed columnwise (not adding new rows).
io commands
nexial.io.eolConfig
: NEW System variable to control EOL character during file-write.validate(var,profile,inputFile)
: minor code fix for equals validation and IN check error report format.rename(target,newFile)
: NEW command to rename file or directory.
json command
assertEqual(expected,actual)
: NEW command to compare JSON documents.addOrReplace(json,jsonpath,input,var)
: now supportsjson
either as JSON content or JSON file (must be fully qualified).
rdbms command
- fixed the issue of resolving SQL variable name that defined in the SQL file per statement.
step commands
- [
observe(prompt)
] now supports error capturing. UseFAIL
as the beginning of your response to mark a step as FAIL.
web commands
- reduce verbosity in web commands (controllable via
nexial.verbose
) - code fix for downloading electron driver
maximizeWindow()
: FAIL for Electron since it’s not supported by underlying driver.goBack()
: FAIL for Electron since it’s not supported by underlying driver.saveDivsAsCsv(headers,rows,cells,nextPage,file)
: NEW command to save a “DIV”-style grid data to CSV file.maximizeWindow()
: implemented native maximize strategy for Chrome/Mac since Chrome on Mac doesn’t support window maximizing.openHttpBasic(url,username,password)
: support the access of URL protected by HTTP Basic authentication.typeKeys(locator,value)
: support keystroke automation on currently active web element (no locator specified.)- by default
electron
will not favor JS-based clicks - configurable driver logging for chrome and electron automation via
nexial.browser.logElectron
- configurable driver logging for chrome and electron automation via
nexial.browser.logChrome
executeScript(var,script)
: now support execution of JavaScript file.