nexial-core 4.2 (2021-09-13)
Release 4.2
2021-09-13
General
Fixes
- fixed
.commons.sh
for Linux environment whereJAVA_HOME
is not set - better handling of logic to determine Java version and subsequently construct the appropriate
JAVA_OPT
Improvements
- allow priority overrides (specified via
-override
) to take effect prior to loading project artifacts. As such, these overrides can be specified via the-override
command line argument. Previous requirement of usingJAVA_OPT=-D...
is still supported so no script/batch file changes are required
Batch Files
nexial-project
: fixed minor edge condition during project creation
external commands
- fixed runtime error when running external program without environment variable
javaui commands
- First draft release of the NEW
javaui
commands. These commands are designed to support automation for Java desktop application - Swing, SWT, RCP for now. Future release aim to support GEF and JavaFX. Underlying automation capability is based on jubula - Commands currently implemented:
nexial-javaui-mapping
: batch file to start company mapping for target Java application
mobile commands
assertAlertPresent(text)
: NEW command to alert that an alert dialog is present. iOS onlyclearAlert(option)
: NEW command to clear/dismiss existing alert dialog. iOS onlysaveAlertText(var)
: NEW command to save the text content of an existing alert dialog. iOS onlyclearNotification()
: NEW command to clear off all push notifications. Android onlyassertAttribute(locator,attribute,text)
: NEW Command to assert attribute value for the first element that matched specifiedlocator
. PolyMatcher enabledsaveAttributes(var,locator,attribute)
: NEW command to collect the attribute values from a list of elements matchinglocator
assertElementEnabled(locator)
: NEW command to assert the presence and readiness (for interaction) of an elementassertElementDisabled(locator)
: NEW command to assert that an element is disabled for interactionassertElementNotVisible(locator)
: NEW command to assert that an element is either not present or not visibleassertElementNotPresent(locator)
: NEW command to assert the absence of element(s)clickByDisplayText(text)
: fixed for iOS deviceclick(locator)
: updated to improve stabilitylongClick(locator,waitMs)
: updated to improve stabilityscrollUntilFound(scrollTarget,direction,searchFor,maxWaitMs)
: NEW command to scroll until a specific element is present- fix scrolling issue that cause UI to hang at times
select(locator,item)
:- performance and accuracy improvements
- supports PolyMatcher on
item
- supports iOS automation
- supports multi-dropdown components, such as Date Picker. Use pipe to separate values. For example,
Aug|26|2021
- implemented retry logic to improve stability
- skip automation if the target
item
is already selected (optimization) - selects a dropdown item based on index via prefix
index:
copyToLocal(file,folder)
: NEW command to copy file from host to connected devicetype(locator,text)
:- code fix to clear off existing text before typing
- clear text via BACKSPACE if the target element contains only spaces, to improve iOS compatibility
- skip automation if target element already contains
text
(optimization)
recentApps()
: fixed for iOS devicelaunchApp(app)
: NEW command to launch or focus on an installed app based onappId
orbundleId
use(profile)
: automatically relaunched the app that was previously closed via the [closeApp
] commandcloseApp
: for Android platform, this command also reset the app since underlying driver is not really shutting down the app- locator
text=
:- text locator now supports PolyMatcher (except for
REGEX:
andNUMERIC:
) - allows for text to contain leading and trailing spaces
- code fix to handle
text=...
locator for iOS automation (automatically convert to usinglabel
attribute)
- text locator now supports PolyMatcher (except for
- locator
nearby=
:- nearby locator now supports
above
andbelow
as well - support PolyMatcher on attribute values as well as text
- support item priority via
{item:#}
where user can specify exactly the occurrence (of multiple matches) to use - support “container” (or parent) reference via
container:
andscroll-container:
- implemented iOS support
- optimizing locator generation
- nearby locator now supports
one-of
locator: NEW locator as a wrapper for device-specific locators.- [android setup]:
- fixed path references in
bin/mobile/android-setup.sh
- fixed shell script permission issues
bin/mobile/update-android-sdk
: utility script to update Android SDK.
- fixed path references in
- fixed executable reference in shell script:
restart-adb.sh
run-android-emulator.sh
show-android-devices.sh
bin/mobile/nexial-apk-manifest
: utility script to manifestappId
,appPackage
andappActivity
of an Android app (apk
)- [
bin/mobile/run-appium-server
]:- helper script to start appium server locally
- updated to display appium server log in local time
bin/mobile/copy-to-android.cmd|sh
: NEW utility script to copy file from host to connected Android devicebin/mobile/copy-to-ios.sh
: NEW utility script to copy file from host to connected iOS device
web commands
- update to latest geckodriver (firefox)
click(locator)
: ensure target element is visible before performing click
webmail commands
- reduce dependency on web command and webdriver
ws commands
- code fix to correctly treat text-based payload as such (instead of as binary stream)
assertReturnCode(var,returnCode)
: allowsreturnCode
to be expressed as a list or rangeclearHeaders(headers)
: NEW command to clear HTTP request headers previously set