Sahi - Web Automation and Test Tool / News: Recent posts

Sahi V4.3 2013-02-06 released

Sahi V4.3 (2013-02-06) is now available for download.

This is a major release with lots of changes ported back from the Sahi Pro version.
For detailed information, please look at the changelog in the installation folder.

Posted by Pratyush 2013-02-06

Sahi V3 2010-06-10 released

Sahi V3 (2010-06-10) is now available for download.
There have been significant improvements and bugfixes in this release. API _under ( has been added to locate elements physically under another.
API _byXPath has been added to help users from Selenium and other tools move to Sahi.
API _row and _option have been modified to be in sync with other APIs. script may need to be modified if you use these APIs.... read more

Posted by V Narayan Raman 2010-06-11

Sahi V3 2010-04-30 released

This build has the following changes:

Fixed Sahi to work with Java 1.5+ instead of 1.6+
Added dblclick and right_click to ruby driver
Added doubleClick and rightClick to Java driver

Posted by V Narayan Raman 2010-04-30

Sahi V3 2010-04-28 released

This is a major release with lots of bugfixes and enhancements.

28 Apr 2010
* Bugfixes
Fixed bug where characters were malformed in UTF-8.
Fixed memory leak in SahiTestSuite
Fixed realm detection bug for 401 authentication
All regular expression based matches match the innermost element
Picking the correct firstLine of HTTPRequests which caused headers to be visible
Workaround for bug in Rhino's Regexp.toString where RegExp has /
Modified browser options to reflect latest browser releases
Fixed Cannot Connect response message to show changes to

* Features added
Using Richard Li's StreamFilterInputStream to reduce number of threads used
Waiting for comet requests
_sahi.lastAssertStatus added which can be used to check state of last alert.
returns "success" or "failure".
Controller shows encapsulating link and table in alternatives
Showing recorded steps on Java/Ruby Controller
_setFile shows error if file is not found. File paths resolved relative to userdata dir.

Posted by V Narayan Raman 2010-04-28

Sahi V3 2010-02-08 Released

This is a major bugfix and performance enhancement release.

* Features added
Added more events like _rightClick,_doubleClick to Controller
_runUnitTests added to run all functions which start with test
_dataDrive(fn, data2D) added
Improved performance by pooling threads in RemoteRequestProcessor (Thanks to Richard Li for pointing this out)
Log_highlight scrolls to highlighted line
Added href based identification to _link
Added support for running single script via HTTP request
Added batch files for running single script
_getText returns value for text and textarea elements
_area Accessor API added for area tags
Sahi version check link added to Controller
addURLMock and removeURLMock added to Browser
Added gzip encoding when fetching remote URLs. Big performance boost.
Externalized Rhino context.setOptimizationLevel in
Externalized buffer size for tweaking performance

* Bugfixes
Multiple file uploads of same name (fileField[]) fixed
Event simulation enhanced for _click and _dragDrop
Fixed Diagnostics tab for case when OS is not listed in
Focus called in _setValue
_set fixed for array elements lookup optimized. (Thanks to Richard Li for pointing this out)
Bugfix in IE rightClick and doubleClick
SessionState_ping stops if proxy switched off
Fixed Authentication Scheme and Realm handling
Escaping newline characters when reading from database
Fixed MockResponder
Fixed PID gathering when driver and proxy are in separate VMs
Fixed expectConfirm and expectPrompt recording in Java mode

Posted by V Narayan Raman 2010-02-07

Sahi V3 2009-10-22 released

Sahi V3 2009-10-22 is a major release where the directory structure of Sahi has been changed.
SAHI_HOME and SAHI_USERDATA_DIR system variables can be declared and Sahi can be invoked from anywhere on the system.

All userdata has been moved into sahi/userdata directory. Sahi can be started using sahi/userdata/bin/start_sahi.bat or
The userdata directory can be copied to any other location on the filesystem. SAHI_HOME and SAHI_USERDATA_DIR need to be correctly set in start_sahi.bat
This helps upgrading to newer versions of Sahi easier.
To point to a new version of Sahi, one needs to only change SAHI_HOME in start_sahi.bat.... read more

Posted by V Narayan Raman 2009-10-22

Sahi V2 Build 2009-05-21 released

Sahi V2 Build 2009-05-21 has been released with a lot of bugfixes and enhancements. This is a major release. This and further releases will require Java 1.5 or above.

* Features added
Optimizations to increase speed.
Optimized listing of log files.
Added better error messages for el = null errors.
Added tests for failing features.

Added _parentNode(el, tagName, occurrence),
Added _parentCell(el, occurrence)
Added _parentRow(el, occurrence)
Added _parentTable(el, occurrence)
Added _cell("cellText")
Added _in() and modified other accessors to take inElement as parameter... read more

Posted by V Narayan Raman 2009-05-21

Sahi V2 Nightly Unstable Build 2009-04-23 released

Sahi V2 Nightly Unstable Build 2009-04-23 has been released. (

This build has a few significant improvements. It now uses Rhino 1.6R2 as its Javascript engine.

NOTE that this and further builds need Java 1.5 or greater.

* API _near, similar to _in has been added. Any element can be found relative to another by using _near.
_checkbox(0, _near(_span("user name 1")))
_link("delete", _near(_span("user name 1")));... read more

Posted by V Narayan Raman 2009-04-23

Sahi: V2 Build 2009-03-04 released

Sahi is an automation and testing tool for web applications, with the facility to record and playback scripts. Features include, in-browser controls, text based scripts, ant support for playback of test suites, reporting, and multi threaded playback.

This is a major release with a lot of bugfixes and enhancements.

* Features added
Displaying popup name in Controller.
Using -no-remote flag instead of MOZ_NO_REMOTE. Older users need to add this to ant targets.
_fail(msg) added... read more

Posted by V Narayan Raman 2009-03-04

Sahi V2 Build 2009-01-21 released

This is a major release with significant addition and changes to functionality. Users of Sahi V2 will NOT have any impact on existing scripts though. Commercial support from Sahi Software ( will be available from this release onwards.

* Features added
Tunneling through external proxy added.
try catch support in Sahi script.
_logException added. Lets you catch an error, take corrective action and also log the error.
_logExceptionAsError added. Same as _logException but fails the test script. Useful for clean up before fail.
Added _isVisible to check for visibility of elements.
Actions on elements now occur only if they are visible.
Better support for zkoss and dojo by identification of js.dsp files and fixing AJAX issues.
Form elements recorded even without enclosing form tags.
Added experimental SSL Manager.
Added TrafficLogger to log HTTP traffic for debugging purposes.... read more

Posted by V Narayan Raman 2009-01-21

Sahi V2 Build 2008-10-26 released

Sahi V2 has undergone drastic simplification in its code structure and is much leaner with enhanced and more reliable playback.

* Features added
logging added for errors in browser functions
logs for suites available while the suite is running
_scriptName added. Returns the script's name
proper killing of browser process using PIDs
BASIC authentication for proxies added

* Bugfixes
browser functions in included scripts handled properly
line numbers in logs handled properly.
strings got from _readFile quoted properly.
suite execution related bugs
Step wise play rectified

Posted by V Narayan Raman 2008-10-26

Sahi V2 Build 2008-08-31 released

Sahi V2 Build 2008-08-31 has been released.

This release uses Rhino as the scripting engine, thus moving most of the script execution to the proxy. This should go a long way in simplifying Sahi scripts. Scripts now execute on the proxy, and only stuff that needs to execute on the browser are sent to the browser. Thus scheduler functions are sent to the browser for execution. One change which has come in is that custom functions which may have been added for identification of browser elements, now need to be wrapped in a <browser></browser> tag so that they are also sent to the browser.... read more

Posted by V Narayan Raman 2008-08-31

Sahi Nightly Build 2008-06-27 released

27 Jun 2008
* Features added
_rteWrite, _rteHTML, _rteText added for writing and accessing Rich Text Editors
_spandiv identifies elements better
_re added for easily making strings to regular expressions
Defaults in changed to:

* Bugfixes
Bug relating to some windows being identified as popups if the page was opened from a contained iframe.
Bug in _spandiv causing "unresponsive script" error on firefox.
Bug in View Script causing failure if the word "sah" was present in script.
_click on _label() will click the related element also.

Posted by V Narayan Raman 2008-06-27

Sahi Nightly Build 2008-06-25 released

* Features added
_label added
_spandiv identifies elements better
Some support for downloading files added
_lastDownloadedFileName, _saveDownloadedAs, _clearLastDownloadedFileName added

* Bugfixes
SahiNotMyWindowException related bug fixed

Posted by V Narayan Raman 2008-06-25

Nightly Build 2008-03-05 released

* Features added
_log(message, customLevel) for logging in different colors without affecting test stats,
customLevel can be 'custom1', 'custom2', 'custom3', 'custom4', 'custom5'
_stopOnError and _continueOnError added to continue inspite of errors during execution.
sahi.bat, modified to work with external classpaths
_printCalled() and _clearPrintCalled() added.
If window.print() was called, you can assert by
Firefox "already running, but is not responding" errors during suite run handled.
This will happen only once now when the suite uses a freshly created profile.... read more

Posted by V Narayan Raman 2008-03-05

Nightly Build 2007-10-21 released

* Features added
_dragDropXY(element, x, y, isRelative) for positioning relative to current position
_dragDropXY(element, null, y) stays on the same x coord.
_dragDropXY(element, x, null) stays on the same y coord.
_position(element) added, which returns [x, y] of element

* Bugfixes
_dragDrop and _dragDropXY related bugs fixed. This fixes scriptaculous drag drop.
_click works slowly bug fixed.

Posted by V Narayan Raman 2007-10-21

Nightly Build 2007-10-15 released

This has a few bugfixes over the previous (2007-10-11) release. _set has been fixed for proper handling of variables. Use this to get for loops working properly.

Posted by V Narayan Raman 2007-10-15

Nightly Build 2007-10-11 released

This is a major release. Apart from a lot of bug fixes, a lot of new features have been added. Significant changes are:
AJAX is handled without _wait in most cases.
Scripting errors are more easily found due to changed execution scheme.
_dragDropXY(element, x, y) has been added.
Bugs involving iframe/frame traversal have been fixed.
_byText(text, tagName) has been added.

View the change logs for other changes.... read more

Posted by V Narayan Raman 2007-10-11

Nightly Build 2007-06-22 released

This is a preliminary release and the release has been made more for validating the fixes. Not certified as thoroughly tested.

Posted by V Narayan Raman 2007-06-22

Nightly Build 2007-02-08 released

A lot of features have been added after the November release.

* APIS added
_mockImage(pattern, clazz)
_assertContainsText(expected, el, msg)
_style(el, property)
_execute("commandline command");

* Feature additions
Test status on Controller
Launch test from command line
Add line numbers to script in logs
Back button support
Keep-alive support to tackle too many connections in TIME_WAIT issue
regular expression support in all APIs
Safari support
junit style logs added
jira issue tracking added
Some basic support for identifying script errors in script using "View Script" link on the controller.... read more

Posted by V Narayan Raman 2007-02-08

Nightly Build 2006-11-26 released

* APIS added
_keyPress(el, char)
_keyDown(el, char)
_keyUp(el, char)
_wait(max_time, condition) added for AJAX applications

* Fixed bugs relating to:
framesets having a frame named "top"
Support for popup windows without names

Posted by V Narayan Raman 2006-11-26

Nightly Build 2006-09-12 released

* APIS added
_expectPrompt(label, txt)
_debugToFile(s, file)
_getDB(driver, jdbcurl, username, password)

* _expectConfirm(boolean) has been changed to _expectConfirm(label, boolean);
* Fixed bug relating to invalid logs being created when there are popups
* _getDB API added for database access
* _readFile(file) added for file reading
* debug apis added for writing to a log file
* Fixed bug regarding dollar array variables. Arrays can also be used as dollar variables now
* scheduler functions work from inside _call also, without messing the execution stack

Posted by V Narayan Raman 2006-09-12

Nightly Build 2006-08-06 released

* Added functionality to mock file uploads. _setFile(_file("id"), filePath) added.
* Added tool for toggling proxy on Internet Explorer through command line or ant.
* _expectConfirm(boolean) and _lastConfirm() apis added.
* Fixed bug fixes relating to logfile paths
* Fixed bug fix with _setSelected()

Posted by V Narayan Raman 2006-08-05

Nightly Build 2006-07-11 released

This is major feature addition and enhancement release.

* Added _addMock("pattern") for mocking responses for urls matching given pattern
* Fixed errors occuring due to incorrect uri and host header
* Debug stepping corrected
* Added multiple script folder support
* Added automatic running of all scripts in a directory
* Added error log redirection to specified folders through ant target
* Added _option(selectedElement, text) for identifying options in a select box
* Added support for single and multi select in multi-select boxes
* Added _div("text"), _span("text") and _spandiv("text") for identification of spans and divs.
* Rectified ssl certificate creation bug caused by invalid timeout value
* Made script running parameters configureable through

Posted by V Narayan Raman 2006-07-10

Nightly Build 2006-06-06 released

* Fixed bug for some submitted pages not working properly on IE
* Added socket pool to prevent Connect exceptions when there are a lot of tests
* Fixed bug to prevent injection of html code into js files
* Added documentation for _callServer and a few other apis
* Displaying an error page when remote server is down. Tests do not stop anymore.

Posted by V Narayan Raman 2006-06-07

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks