nexial-core 4.2 (2021-09-13)
Release 4.2
2021-09-13
General
Fixes
- fixed
.commons.shfor Linux environment whereJAVA_HOMEis 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-overridecommand 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
javauicommands. 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 matchinglocatorassertElementEnabled(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
itemis 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 onappIdorbundleIduse(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 usinglabelattribute)
- text locator now supports PolyMatcher (except for
- locator
nearby=:- nearby locator now supports
aboveandbelowas 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-oflocator: 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.shrun-android-emulator.shshow-android-devices.sh
bin/mobile/nexial-apk-manifest: utility script to manifestappId,appPackageandappActivityof 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): allowsreturnCodeto be expressed as a list or rangeclearHeaders(headers): NEW command to clear HTTP request headers previously set