List of Bug Fixes, New Features and APIs Implemented After 750 Release
List of Bug Fixes, New Features and APIs Implemented After 750 Release
Features
- Added depthLimit and breadthLimit in windows automation for handling
identification in large amount loaded data
- Added Microsoft.TestApi library for drag drop issue
- Added SahiThread of python automation app for version controlling
- Added GetCoordinates function to get the coordinate related info of
given element
- Added automationId attribute for data item (telrik winform app).
- Modified code for element search recursion method
- implemented constructors with host and port for Windows, Java
Application, Android and iOS
- Implemented sahiIndex in accessor json and collect apis for json.
- Added combo with click events
- Added debugInfo in log result of windows / java
- windows : accessor_metadata changing api to name
API
- Added _areHorizontallyAligned API in windows lib
- Added _areVerticallyAligned API in windows lib
- Added _isVisiblyInside, _isVisiblyOutside,_isVisiblyOn API in windows
lib
- Added _isCentered, _fitsHeight, _fitsWidth API in windows lib
- Added _assertHorizontallyAligned, _assertVerticallyAligned,
_assertCentered, _assertVisiblyInside, _assertVisiblyOutside, _assertVisiblyOn,
_assertFitsWidth, _assertFitsHeight in windows lib
- Added _startLookInside and _stopLookInside for windows
- Added _keyPress API for windows
- Added new option of _setMode for PYTHON
- Added _setFrame and _resetFrame in scheduler_functions for python
- Added _getBackground color API for windows for identifying background
color of given element
- Modified _collectAttrinutes for regular expression index
- Added _wEdit, _wHyperlink, _wRadiobutton, _wCombobox for windows only
API
- Added _keyUp, _keyDown API
- Added _parentNode API
- Rename _getCoordinates API to _getCoordinatesAndDimension
Fixes
- Resolved issue with collect API's modified code
- Added handling language's special characters by identifying non utf 8
string example : ü
- Fixed progress-bar getValue issue in windows7
- Changes for isAccessorIgnoreCase property of windows
- FIxed select read-only combo-box with reg-ex in windows 7
- _fitsHeight, _fitsWidth fix
- Issue fixed for near API with tab elements and anchor element
identification
- Fixed _collectAttributes issue for characters case, multiple
attributes and issue for passing any property attribute
- Fixed regular expression indexing. Case - If we are searching for
second index of regex and found first in first attribute and second is in next
attribute than unable to find it as on every attribute iteration we are
reinitializing the value of object res which contains counter and element
- Fixed _dragDrop with drop in different target window
- Fixed anchor _in relation in parent child relation in identification
- Changed attribute helptext to helpText camelCase for windows json
- Updated window name for silverlight application due to IE launch in
private window
- Showing Assert and log statement in controller in non browser mode.
- Fixed working of onBeforeStep and onAfterStep for desktop and
resolved onAfterStep not calling after error in browser
===================================================================================
===================================================================================
===================================================================================
===============================================================
Java
Features
- Java: Implemented click() for JTree nodes.
- implemented java automation with rhino js
- invoking click action from SahiJavaAutomation instead of
sahiagent_lib.js
- JAVA: Added implementation for identifiers passed as json.
- JAVA: Added sahi identifiers in list properties's list.
- Added debugInfo in log result of windows / java
API
- Java: Implemented _getAttribute, _collectAttributes,
_collectElementsInfo
- Java: Implemented _contains api and modified testapp.
- Implemented _getWindows and _contains for Java.
- Added elementNotFound exception for _highlight() api.
- Java: added api _getImageText() [to retrieve icon path] java and
applet mode.
- added _getCellIndex() [to retrieve index of row and col for table].
Tests/Doc remaining.
- Added _clickNative implementation for TreeNodes.
- Java: Added identification and _getText() for
"oracle.ewt.statusBar.StatusBar"
- JAVA: Implemented _getTableContents.
- Java: added alignment apis for java and java_applet. Fixed some code
in getPosition(comp, nativePosition)
- JAVA Fixed: _getValue(el, identifier) was not working.
- JAVA: Added _focusWindow() api.
- JAVA: 1. Removed checkNull for _contains api.
- Added _focusWindow for applet mode. Note: This api will only focus
the java application launched. This will not focus the browser window containing
applet. To focus that browser window, do _setMode("BROWSER") and then
_focusWindow() and again _setMode("JAVA_APPLET").
- Added _sahi. for scheduled apis
- Added _getCellIndex() api
- Added _getIconPath
- Added _parentNode api
- updated _launchJavaWSApplication api. It will internally call
_launchJavaApplication api
- Java: when json is passsed as an idetifier for element,
identification will happen for both "name" and "Name" when passed as a key. For eg:
_jvJRadioButton({Name:"Red", sahiIndex:0}) _jvJRadioButton({name:"Red",
sahiIndex:0}) both will work.
Fixes
- Java: Oracle Forms Fixed: _setSelected was not working.
- Oracle Forms: Last check-in reverted the fix for VPopList
_setSelected. Fixed.
- Applet- "stepInfo" was setting as null in case of Applet. Fixed.
- JAVA: Fixed identification of custom elements when no identification
info is available except Index.
- Fixed: Indexing problem was occurring when custom elements are added
in application. If two tables are present (one is JTable and other is custom table,
for both table index 0 was returned.)
- Java function invocation from Sahi: fixed path problem for different
OS.
- Oracle forms unresponsive issue for focus on elements.
- fixed _setSelected
- Fixed oracle elements automation. Oracle forms hanging issue on
focus. Added code for user_extension.js
- Fixed _keyPress not working for value 65. _setAccessorIgnoreCase was
not working.
- Fixed Java: _setValue was not working for custom table.
- Fixed Java: _click was not working for custom table.
- JAVA Fixed: _setValue() not working for Table, when boolean value is
passed, to check/uncheck checkboxes. Removed toString() conversion of value in
componentInfo.setValue.
- JAVA: Fixed fetch apis not working for JAVA mode.
- Fixed: For _setValue if we pass any int value, for instance 13, value
set is 13.0 and thus assertions were failing.
- Fixed: _dragDropNative for table when passed int values was not
working.
- JAVA Controller: Fixed: java controller not working for JAVA,Windows
mode. Added tests.
Fixed result text in java controller. Result was coming in this
format "true__SAHIDELIMITER__null".
fixed accessor callUp and callDown functionality for AVA,
JAVA_APPLET, WINDOWS mode. Remaining for IOS and Android mode.
Fixed anchor button for BROWSER, JAVA, JAVA_APPLET AND WINDOWS
mode. Remainig for IOS and ANDRIOD mode.
Fixed screen refresh after actions performed from java controller
for Android and IOS mode.
fix: Java controller recording
fixed: java controller recording/evaluate expression for iOS
json parsing exceptions were coming for parent child
identification for applet/java application.
Fixed Parent and child from controller for Android and IOS mode.
1. Android: When accessor is set, on performing actions, null
pointer exception was thrown.
2. When accessor is set, with element having index value as an
argument, int type of index value is changed to double.
Fixed: indexing problem when strict visiblity is turned on.
- Controller : For android api list was not coming. Fixed.
- JAVA: Fixed launching of java application from .sh file on OS other
than Windows.
- Controller: Fixed set action from controller. When set button is
clicked for JTree, _setSelected api should be called. When multiple items are
selected for an element, _setSelected api is not working, because syntax generated
was wrong.
- JAVA: fixed playback for elements having identificaion info in format
"text[text]", Sahi was taking anything inside square bracket as index of the
element, and thus throwing NumberFormatException. Modified sample application to
test this scenario.
- Fixed _launchJavaApplication api for launching of .exe application.
Updated batch and shell script files.
- 1) fixed _launchJavaApplication for operating systems other than
windows.
- 2) fIXED execution of java_app.sh from terminal and
_launchJavaApplication. (previously it was working from terminal only. path related
problem was there when invoked from _launchJavaApplication)
- JAVA: Fixed focusWindow() for java and java applet.
- JAVA: Implemented sending of coordinates on ctrl+shift+hover.
===================================================================================
===================================================================================
===================================================================================
===============================================================
Browser
Features
- populate list of script in sahi launcher page for multiple directory
- failedSuiteFiles: adding xsl file for failed suite files
- failedSuiteFiles: Changed UI and modified filenames to link
navigating to edit script page
- Created links for failed scripts in failedSuiteFiles.
- Added Suite Analysis to Suite reports which will show details for
failures, Suite Analysis: Steps count and link updated for step-messages
- Tesseract OCR : checkdin related code, jar files and folders.
- restui: multiple file uploads, UI file upload buttons in body fields
- the file open dialog is triggered from Java
- restui: added support for embedded file-upload using base64 string of
file content. added base64 code until class
- CREATING INDEX ON SCRIPTREPORTS FOR SUITEID.
- Editor: ctrl click on commented include and methods added
- Adding SKIPPED and ABORTED status Adding changes done as part of
implementing SKIPPED and ABORTED status. the bar color in graph to brown for
aborted script
- Adding columns SKIPPEDCOUNT and ABORTEDCOUNT to SUITEREPORTS table in
order to store the corresponding counts. Also added 'depends' column in dd.csv
files.
- Added Tesseract OCR related file for version controlling changes
- Added a retry text box in playback window in Editor, testrunner,
drun, drun different master ant Ant Made retry count as property.
- Adding script retry to ant target. Added retryCount parameter to ant
xml in order to retry the failed and aborted script.
- File upload fix for IE and multiple files feature added.
- Changed the data type of depends to Set. Added depends behavior to
Failed script as well. Its being achieved by the use of tags.
- _getLayout Feature: will get layout of page in file
- Offline graph feature added
- Adding skipped and aborted count in Suite Analysis page
- Committing changes for adding new tables with scripts failed history
which includes the pass percentage and latest status (number of status is
configurable. Default is 10) for each scripts. Table 1 with scripts that have
failed in the perticular suite. Table 2 with scripts that have passed but have some
failure history.
- implemented _keyDown and _keyUp apis for flex with test script.
- Notifying users if more than one instances of Editor are being opened
- Added implementation for custom.js file. End user can write code in
javascript to invoke components method.
- Committing changes for cloud support page. Added more parameters for
launching instance.
- Implementing show/hide images in html logs.
- httpcache: initial implementation, unstable
- Implemented fetching number of images at one request in drun (worked
on ETS, they have more than 2lac images to fetch).
- Proxy will stop with closing all running threads and Dashboard will
not do System
- Custom subject in Email : add custom email in second line of
email_template.xsl, in comments. For example: <!-- Subject : $STATUS -
$SUITEINFO_SUITENAME - $SUITEINFO_HOST - $SUITEINFO_PORT -
$SUITEINFO_BASEURL -->
API
- _addResponseSubstitutionRule _removeResponseSubstitutionRule
- Modified getImageText() api for custom icons. Add metadata in json
file for the icon.
- Modified _count API for working with alternate identifiers and
modification with near API for not count given near element Case insensitive
_getAttribute's attributeName to give same behaviour as sahi browser Returning
attribute sahiText value as element name
- Added extra param isPasswordEncrypted in _getDB.
- Parsing: _log([email protected]()) was throwing error, while trying
to fetch data from xml file.
Fixes
- 1. Fixed: _aasertNull(null) was not working.
- 2. Implemented_containsText for java/java_applet mode.
- save file script directory auto selected if multiple directory
configured. alert on create suite by selecting files from multiple directories.
- _activeElement api bug fixed.
- stop recording multiple comment line in ar file.
- failedSuiteFiles: Modified xsl to show script details causing failure
- restui: decode xml string from body to post soap request, update
test.
- Code Coverage fix when script reloads, JS Code Coverage IFrame fix
- 401: merging the recent curl related changes made for the v701 to
curl master
- Committing fix for considering Square bracket elements as a single
parameter while importing functions at Scenario files.
- Restui: encode special character from body for send xml as body
- restui: removed redundant encoding of the REST request fields
- Parsing: Fixed: When anonymous function is passed as an argument to
Sahi Api, Sahi is throwing error "<api> not defined."
- Email Report: 1 Added "view logs" link. 2 Added test case report
table
- Dload log graph change from flash to d3 graph, Dload log ui changes,
show step number correctly, Test Summary Show Scripts UI changed.
- Fixed: email format for outlook. Text with background color was not
visible in outlook.
- ddcsv: fix for commented file not opening
- conatinsText: indexOf not defined fix on IE enterprise
- Fixing _disableInfoLogging for misc_function e.g. (_lockWindow,
_focusWindow, _unlockWindow)
- Scenario file commented test case running issue fixed
- MAC fix: Failure message link updated since on MAC link was resulting
in script not found.
- 401: merging recent changes
- uses sahi session store to persist curl bridge connection for
requests from same domain and scheme
- has toggle to use file streams for headers and payload
responses
- has option to set headers cache size
401: added persistent connection support
- Fixed: cannot identify elements using relation APIs in IE
- Email_Template: Added failed Scripts and version in
email_template.xsl.
- _testcase fix: after one test case failed all testcases were showed
as failed
- Removed _dumpElementInfo from js, java, applet and windows's lib.js
as it was renamed to _collectElementsInfo
- Fixed for cross domain iframe issues.(Cisco reported) 1. Some steps
will execute twice. 2. Sometime iframe take the step of main window.
- Committing fix for _wait() calling after launching a new window.
Removed the incrementing part when the step is not matched for _wait() api.
- Implemented suite.time_between_tests
- charset fix: charset was not being set
- etag: adding initial etag implementation to the master branch.
- failed tests were showing as passed in logs
- fnInfo popup fix: for functions below scrollbar fnInfo was not being
shown
- file Upload: Sending file instead of blob for browsers which have
file constructor since few applications have this check
- fix: Commented testcase was also showing in result at Script Report
Page
- fix for Proxy.callShutdownObservers method missing when Sahi was run
from the Proxy class.
- setValue Fix: frameworks not allowing to trigger change event fix
- isArray IE fix: modified isArray function so that it works as
expected in all IE scenarios
- Infinite loop fix: In the case of parent having children with
attribute value code was going in loop
- IE popup not displaying fix on function click
- fixed image/artifacts sync by batch logic
- file Upload fix for uploading more than two files
- takePageScreenshot fix: taking screenshot of element inside scrolled
element, for pages with scroll
- commented escaping values for TestCase Summary (generating XML with
escaped values). if user passes HTML contents in TestCaseId, so it was showing
escaped content on browser instead of showing actual HTML output
- removed disable-output-escaping=true from script_report.xml for
testCaseSummary
- fixed FailedTestCase
- CREATED INDEX for STEPID to improve the performance of drun in case
of screenshot steps.
- takePageScreenshot fix when scrolled element does not take whole
browser width.
- Fixed Junit test calling start method of Proxy.
- etag: few fixes, added custom header fetch methods, added condition
to remove etag header only if the etag is disabled
- reports: fix for postgresql database issue
- Fixed offline report download and email in load Testing using ant xml
(Jay)
- AR fix: clearing AR cache so on changing AR file, AR value updates
from changed AR file
- Killing ProxyProcessor properly on stopping the proxy.
- Fixed email_template.xsl for outlook. Suite Name was displayed
properly in outlook.
- Browser Hang fix because of getAssociatedLabel
- Fixed for chrome/ opera handsontable column size fix on tab change.
- Hiding _setPassword decrypted value if step fails.
- fixed reading long XLSX file (Heap Space issue)
- EDITOR: Create Function : if no parameters are selected for function
then don't show "param" in JSDOC.
- Broken Show all network functionalities fixed
- Chanhge for _count API for large number of data with regular
expression /.*/
- escaping ]]> to fix the xml parsing error in logs.
- Create AR: Manual changes of AR key will reflect on creating AR
- Added --no-first-run in mac and linux to fix first time(before the
user profiles) default browser check in chrome.
- Logs Identification: For selected link on navigation bar in suite
page, accessors were not correct. Selected link is both a tag and bold, but
accessors were generated for only _link api. and for same element two different
accessors with index were getting generated. Because for bold tag accessors, _link
was coming instead of _bold
- Graph UI fixed in all browsers
- fixed: Test Cases showing failed after one fails and errors showing
passed issue
- Broken filter fix on Suite List Page
- Fixed UI break of Suite Report on resizing or on small screens
- EDITOR scenario files MAC: prevented opening of context menu on
ctrl+click in mac.
- Fixing compare logs in suite report page.
- Create AR issue fix in case AR file does not exist
- Fixing Matric stream har issue for post request if server is
returning HTTP/1.1 200 200 instead of HTTP/1.1 200 OK.
- restui: fixed filling"undefined" string when clicking on browse
button for file upload and Sahi is off
- Fixing sahiIndex json for Accessor.
- Editor Save issue fix when Script directory not selected from
dropdown
- 401: adding license references for curljava
- licenses.txt in docs/licenses/curljava
- library name reference in NOTICE.txt, NOTICE.htm,
NOTICE_RUNNER.htm, NOTICE_RUNNER.txt
- firefox90sec: fix for minimizing firefox 90 seconds error
- firefox uses prefetch
- 90 seconds timeout occurs in rare cases, 1/200 browser sessions
due to unknown reason, stalls at Player_auto url
- believe that combination of the changes minimizes the 90
seconds timeout
- Auto Suggestion was not working for script line having more than one
")" symbols
- Fixing broken har viewer for the request having decoded charchers
e.g. SAHI INJECTED CODE.
- Restui: Replacing field separator from dot to extended ASCII '\u00ac'
- Ignoring _takeScreenShots if image related api is used(not fixed on
phantomjs)
- controller : changed msg "Press CTRL key and hover mouse over any
element." for mac to "Press COMMAND key and hover mouse over any element."
- Set original text when parsing of text is undefined while generating
docs of sahi script
- AR from Editor: Editing AR key and value functionality modified
- Screenshot: Dual Screen issue fix
- Fix for heap space error Removed JSDocs from autoCompletelist call
and added new method to retrieve JSDocs for each functions at the time of
selecting them.
- Fixing misc_functions.txt parsing to see the html logs correctly with
accessor(variable) value.
- Fixed: Screenshot is not appear in script report for last step when
_takeScreenShots(true) is specified in script
- Set suit report link target to index.html when traverse from retry
logs in offline report
===================================================================================
===================================================================================
===================================================================================
===============================================================
Key features
bug
= scenarion file comment a test case
= _testcase
===================================================================================
===================================================================================
===================================================================================
===============================================================
Mobile
Feature
Api Implemented
Fixes
- change the identifier preference. Identifier order will come from
android.json (attributes property). If not specified than it will take the default
identifier preference (Text, ResourceId, Index).
- 1) removed _wait API from action-apis.html, because it is already
written in script-execution-control-apis.html 2) removed _selectBrowser from
multiple-mobile-browsers.html. already written in multiple-browsers.html
- fixed browserType not coming in testcase report
- fixed product bundle id was not writing in
build_ios_binaries_for_device.sh file while installing mobile installer.
- fixed reading long XLSX file (Heap Space issue)
- fixed: _near. Ignoring same element from descendant array if its
coming multiple times.
- fixed _connectDevice and _selectDevice was not recorded along with
_setMode
- fixed: Android/IOS script playback from scenario file using Java
Driver.
- fixed _setValue for Android versions below KitKat (including KitKat).
It was a bug in Android UiAutomator setText function. For now fixed it by using
reflection. It will be removed once it is fixed in Android UiAutomator itself.
Still it is a bug in password type EditText, because passwordfield.getText()
returns null so we can't do selection without the length of the current text.
- fix: Java controller recording
- fixed startNativeSession hangs from viewer
- fixed: if device list dropdown does not contains the deviceId from
history then it will be blank on page load of android viewer.
- When checking visibility, use the primary instead of index accessor -
Index accessors will mostly be visible even if the screen changes. But the primary
accessor will likely not be.
- 1) fixed: element identification when accessorIgnoreCase is set. It
should use predicate without regex.
- 2) setting accessorIgnoreCase to true while clicking on the the
keyboard button, and reverting it after click.
- change the order of iOS keyboard buttons. Issue: In Webview, keyboard
is shown with two buttons: "return" and
"Done".
"return" button works as Enter. So if we set username value
in Sahi's sample application in iOS Webview then by clicking on "return" button it
will perform submit action.
- Fixed: JTree automation. removed DefaultMutableTreeNode as typecast
because sometimes it doesn't work (throws typeCast Exception). Removed all JTree
related conditions where we are calculating TreePath.
- Fix Installer:1) Enable mobile automation property by batch/shell
script 2) Disable mobile automation property by Uninstaller 3) Adding property for
iOS/Android in installer itself. (It will be removed from sahi.properties from now
on.)
- fixed product bundle id was not writing in
build_ios_binaries_for_device.sh file while installing mobile installer.