Introduction
Sahi Pro - Introduction
Sahi Pro + Add-Ons
Main Features
Supported Features and Technologies
Browser Support
Sahi Name
What's new?
Sahi Pro v11.2.0.0 - What's new?
Key Features
Merge Conflict in Flowcharts
Environment based Datasets
Controlling Branch Flow with Sub-Label Grouping
Dependency at Flowcharts Level
Add Data / Loop Boundary on Node
Improvements
New Actions
Modified Actions
Bug Fixes
What is new in Sahi Pro Desktop Add-on v11.2.0.0
What is new in Sahi Pro Mobile Add-on v11.2.0.0
What is new in Sahi Pro SAP Add-on v11.2.0.0
What is new in Sahi Pro AI Assist Add-on v11.2.0.0
Improvements
Sahi Pro v11.1.0.0 - What's new?
Key Features
Artificial Intelligence for Mobile Automation
Import from Postman
Keyword and Step Override
Improvements and Bug Fixes
What is new in Sahi Pro Desktop Add-on v11.1.0.0
Improvements
Windows Application
Java Application
What is new in Sahi Pro Mobile Add-on v11.1.0.0
What is new in Sahi Pro SAP Add-on v11.1.0.0
What is new in Sahi Pro AI Assist Add-on v11.1.0.0
Improvements
Sahi Pro v11.0.1.4 - What's new?
Key Features
Execute in Sahi Pro Flowcharts via Ant
Reference variables inside string parameters
Avoid skipping dependent paths
Improvements
Bug Fixes
What is new in Sahi Pro Desktop Add-on v11.0.1.4
What is new in Sahi Pro Mobile Add-on v11.0.1.4
What is new in Sahi Pro SAP Add-on v11.0.1.4
What is new in Sahi Pro AI Assist Add-on v11.0.1.4
Sahi Pro v11.0.0.8 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
Key Features
Sahi Pro Flowcharts
Improvements
Bug Fixes
What is new in Sahi Pro Desktop Add-on v11.0.0.8
Improvements
Modified APIs
Bug Fixes
What is new in Sahi Pro Mobile Add-on v11.0.0.8
Improvements
Bug Fixes
What is new in Sahi Pro SAP Add-on v11.0.0.8
Improvements
What is new in Sahi Pro AI Assist Add-on v11.0.0.8
Modified APIs
Sahi Pro v10.0.0 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
Key Features
Artificial Intelligence Infused
BDTA Is Now Multilingual
Reports Are Now Revamped
Enhanced Applet Automation
Performance Improvement In Windows Automation
Improvements
New APIs
Bug Fixes
Sahi Pro v9.7.0 - What's new?
Instructions for updating through Web UI
Bug Fixes and Improvements
What is new in Sahi Pro Desktop Add-on v9.7.0
What is new in Sahi Pro Mobile Add-on v9.7.0
What is new in Sahi Pro SAP Add-on v9.7.0
Sahi Pro v9.5.0 - What's new?
Instructions for updating through Web UI
Key Features
Git Integration
Modifications
Bug Fixes and Improvements
What is new in Sahi Pro Desktop Add-on v9.5.0
What is new in Sahi Pro Mobile Add-on v9.5.0
What is new in Sahi Pro SAP Add-on v9.5.0
Sahi Pro v9.2.1 - What's new?
Instructions for updating through Web UI
New APIs
Modifications
Bug Fixes and Improvements
What is new in Sahi Pro Desktop Add-on v9.2.1
What is new in Sahi Pro Mobile Add-on v9.2.1
What is new in Sahi Pro SAP Add-on v9.2.1
Sahi Pro v9.2.0 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
New APIs
Modifications
Bug Fixes and Improvements
What is new in Sahi Pro Desktop Add-on v9.2.0
What is new in Sahi Pro Mobile Add-on v9.2.0
What is new in Sahi Pro SAP Add-on v9.2.0
Sahi Pro v9.1.2 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
Bug Fixes and Improvements
Modifications
What is new in Sahi Pro Desktop Add-on v9.1.2
Bug Fixes
What is new in Sahi Pro Mobile Add-on v9.1.2
What is new in Sahi Pro SAP Add-on v9.1.2
Sahi Pro v9.1.1 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
Bug Fixes and Improvements
Modifications
What is new in Sahi Pro Desktop Add-on v9.1.1
What is new in Sahi Pro Mobile Add-on v9.1.1
What is new in Sahi Pro SAP Add-on v9.1.1
Sahi Pro v9.1.0 - What's new?
Instructions to Install/ Upgrade using Installer
Instructions for updating through Web UI
Key Features
Bug Fixes and Improvements
Modifications
What is new in Sahi Pro Desktop Add-on
What is new in Sahi Pro Mobile Add-on
What is new in Sahi Pro SAP Add-on
Sahi Pro v9.0.2 - What's new?
Update Instructions
Key Features
Bug Fixes and Improvements
Modifications
Sahi Pro v9.0.1 - What's new?
Key Features
Bug Fixes and Improvements
What is new in Sahi Pro Desktop Add-on v9.0.1
Bug Fixes
What is new in Sahi Pro Mobile Add-on v9.0.1
Modifications
Sahi Pro v9.0.0 - What's new?
Key Features
Business Driven Test Automation
Data Driven Testing
Autoheal for web automation
Enhanced Suite analysis
Create Virtual Machines with AWS Cloud Formation
Mobile Automation integration with AWS Device Farm
Automatic thread allocation during playback
Prevent unauthorized remote access
Updating Sahi Pro is now easier
Additional notes
New APIs
Bug Fixes and Improvements
Known Issues
Sahi Pro v8.0.0 - What's new?
Key Features
License Product Keys
Dependency, Retry and Modes in Suites
Logs and Reports
Editor
REST Client
Controller
Database
New APIs
Modified APIs
Bug Fixes
Sahi Pro v7.5.0 - What's new?
Key Features
New APIs
Modified APIs
Bug Fixes
Sahi Pro v7.0.1 - What's new?
Bug Fixes
Sahi Pro v7.0.0 - What's new?
Key Modifications
Expansion of platform to support non web technologies
Key Features
Support for Add-ons
REST Client UI
Javascript Code Coverage Reports
Script name, testcase name in tags
Artifacts and screenshots available in offline reports
Evaluate Expression
JsDoc
New APIs
Modified APIs
Bug Fixes
Sahi Pro v6.3.2 - What's new?
Bug Fixes
Sahi Pro v6.3.1 - What's new?
Key Features
File Access Security
Bug Fixes
Sahi Pro v6.3.0 - What's new?
Key Features
Tree Structure in Logs
Periodic Notification During Script Playback
Auto-Indentation in Script Editor
New APIs
Other Features and Enhancements
Bug Fixes
Sahi Pro v6.2.1 - What's new?
New APIs
Modified APIs
Other Features and Enhancements
Bug Fixes
Sahi Pro v6.2.0 - What's new?
Key Features
Microsoft Edge Support
Passing External Data in Excel
Restrict Remote Access
Sahi Pro License Server
Sahi Pro Runner
Support for Multiple Languages
Download Artifacts
Download Reports Offline
Auto Refresh Logs
Data Driven Suites with testcases
New APIs
Modified APIs
Other Features and Enhancements
Bug Fixes
Sahi Pro v6.1.0 - What's new?
Changes in Sahi's behaviour
Fresh install with MySQL, MSSQL or Oracle databases
Upgrade
Key Features
Support for Shadow DOM and Custom HTML Elements
Support for Polymer Elements
Editor Enhancements
Error Notification
Find and Replace
Debugging using breakpoints
Context information
Others
New Format for Scenario Files
Sync Reports to a Central Database
Periodic emails
Oracle database support for Reports
Improvements in Distributed runs
New APIs
Modified APIs
Other Features and Enhancements
Bug Fixes
Changes needed in Usage
Sahi Pro v6.0.1 - What's new?
Bug Fixes
Features
Sahi Pro v6.0.0 - What's new?
Key features
Editor
Triggering Sahi Pro from Jenkins
Object Repository
Better Reporting
Browser Page and Element Screenshots via _takePageScreenShot
Better error stacktraces
Script locking for synchronization
Globally included global_include.sah file
Searching scripts within suites in Sahi's logs
Improved Graphs
Compare images
Native events
New APIs
Modified API's
Other Features and Enhancements
Bug Fixes
Sahi Pro v5.1.2 - What's new?
Bug Fixes
Sahi Pro v5.1.1 - What's new?
Features
Bug Fixes
Sahi Pro v5.1.0 - What's new?
Key features
Internet Explorer 11 Support
CORS support
Data Driven Suites
Brand new documentation
Scenario Editor for Excel Framework
Sahi as a Documentation Tool
Script specific object repository files
Upgrading Sahi becomes easier
Multiple browser sessions in single script
REST APIs for WebServices
Email notification on Suite execution
Lots of optimizations
New APIs
Other features
Bug Fixes
Sahi Pro Desktop Add-on
Features
License
Pre-requisites
Desktop Add-on Quick Start
Sahi Pro Desktop Add-on Runner
What's new?
Sahi Pro Desktop Add-on v10.0.0 - What's new?
Key Features
New APIs
Bug Fixes and Improvements
Windows Application
Java Application
Sahi Pro Desktop Add-on v9.0.0 - What's new?
Key Features
Playback
New APIs
Windows Application
Java/Applets Application
Bug Fixes and Improvements
Windows Application
Java/Applets Application
Sahi Pro Desktop Add-on v8.0.0 - What's new?
Key Features
Controller
New APIs
Windows Application
Java/Applets Application
Modified APIs
Windows Application
Java/Applets Application
Bug Fixes
Windows Application
Java/Applets Application
Sahi Pro Desktop Add-on v7.5.0 - What's new?
Key Modifications
New APIs
Modified APIs
Bug Fixes
Sahi Pro Desktop Add-on v7.0.1 - What's new?
Key Features
Bug Fixes
Sahi Pro Desktop Add-on v7.0.0 - What's new?
Sahi Pro Mobile Add-on
Features
License
Sahi Pro Mobile Add-on Runner
Using Sahi Pro Mobile Add-on
What's new?
Sahi Pro Mobile Add-on v10.0.0 - What's new?
New APIs
iOS Application
Bug Fixes
Sahi Pro Mobile Add-on v9.0.0 - What's new?
Key Features
Android Viewer
AWS Devicefarm Integration
iOS Hybrid App
New APIs
Android Application
iOS Application
Bug Fixes
Sahi Pro Mobile Add-on v8.0.0 - What's new?
Key Features
Controller
Android/iOS Viewer
Configuration
Plyaback
New APIs
Android Application
iOS Application
Modified APIs
Android Application
iOS Application
Bug Fixes
Sahi Pro Mobile Add-on v7.5.0 - What's new?
Sahi Pro SAP Add-on
Features
License
Pre-requisites
SAP Add-on Quick Start
Sahi Pro SAP Add-on Runner
What's new?
Sahi Pro SAP Add-on v10.0.0 - What's new?
Bug Fixes
Sahi Pro SAP Add-on v9.0.0 - What's new?
Sahi Pro AI Assist Add-on
Features
License
Pre-requisites
AI Assist Add-on Quick Start
Sahi Pro AI Assist Add-on Runner
What's new?
Sahi Pro SAP Add-on v10.0.0 - What's new?
Sahi Pro Runner
Sahi Pro Desktop Add-on Runner
Sahi Pro Mobile Add-on Runner
Sahi Pro SAP Add-on Runner
Sahi Pro AI Assist Add-on Runner
Sahi License Hub
Access Sahi License Hub Web Interface
Change MAC Address
Manage Leases
View License Usage Reports
Graphical Representation
Show Data
Manage Access List
Architecture
User Goals
Technical Goals
Handling new browsers and operating systems
Object Identification
Event simulation
Scripting
Agile
Architecture
Sahi Script
Sample Code
Parsing and Execution
Rhino Engine
Sahi OS
Sahi OS v5.0 - What's new?
New Features
New APIs
Bug Fixes
Sahi Pro Other Versions
Using Sahi
Sahi Pro - Getting Started
Prerequisites
Download Sahi Pro
Upgrade Sahi
Install Sahi
Start Sahi Dashboard
Add License Product Key
Recording through Sahi
Add assertions
Playing back
View Logs
Edit the recorded script
Extract Functions
Build a library file
Create a Scenario file
Suites - Automating playback of multiple scripts
Further Reading
Business Driven Test Automation (BDTA)
Introduction
Create Scenario File
Write a TestCase
Implement using Run/Record
Run the TestCase or Scenario
Reports
Data Drive the TestCase
Data Drive Using Database
Tutorial Videos
Best Practices
Basic Recommendations
Advanced Team Recommendations
Language Recommendation
Setup and Configuration
Upgrade
Configuring Sahi (Basic)
Configure Browsers in Dashboard
browserType Node
Variables used in browser_types.xml
Other browser modifications needed
Internet Explorer 11
Internet Explorer 10
Opera
Safari
Configure SSL
Enabling weaker algorithms on Java 1.7 and later
For Linux
For Mac
For Mobile Device
External Proxy
Proxy AutoConfig Script
Fixed Proxy
Configuring Proxy on Mac
Configure VPN proxy settings
Restrict Remote Access
Restrict Remote Access
Configure IP addresses to Restrict Remote Access
Configure login Restrict Remote Access
Allow Access to Restricted Sahi Pro
Restrict Files Access
Configure userdata_hidden.properties
Securing Sahi for Enterprises
Using custom domain instead of sahi.example.com
Creating Custom SSL Root Certificates
Create the root certificate
Accept the root certificate on browsers
Configuring Firefox template for new root certificate
Deploying the root certificate changes on other Sahi Pro installations
Sahi GUI Less (Silent) Installation
Add external Jar Files and Configure Nodes
Manage External Jar Files
Sync External Jar Files to Sahi Nodes
Auto Thread
Configure
Manage Version Updates and Add-Ons
Update Sahi Pro page
Install Updates
Install Major Version Updates
Install Minor Version Updates
Rollback
Install Add-ons for Sahi Pro
Sync Add-ons
Install Patches
Controller and Editor
Using Sahi Controller
Record Tab
Identify Elements
Action Buttons
Assertions
Evaluate Expression
Use . to get attributes
Up and Down arrows
Anchor button
Directly copy the Accessor to Evaluate Expression
Smart Dropdown for Evaluate Expression
APIs List Box
Retrieve Coordinates of a Point
History of Evaluate Expression
Record a Script
Record with Accessor Repository
Record Documentation
Playback Tab
With page refresh
Without page refresh
View logs
Debug during Playback
Play Scripts from a URL
Clipboard Tab
Info Tab
Java Controller
Accessor Spy
Identify Elements
Action Buttons
Assertions
Evaluate Expression
Record a script
Sahi Script Editor
Launching the Editor
Navigator
Script Editor
Context Panel
Function Details
Accessor Repository Details
Traversing between files in the Editor
Function Creator
Search
Auto Format of Scripts
Find and Replace
Scenario Editor
Passing Named Paramaters
Documentation tool
Playback
Distributed Playback
Using a Different Master
Advanced Playback Settings
Scheduling a Test
Creating suites
Creating Accessor Repository
Editor Shortcuts
Debugging Sahi Scripts
Periodic Summary during Script Playback
Password Encoder
REST API Editor
Launching the REST Client
REST Request
Manual Input
Import from HAR
Import from network activity in Sahi logs
REST Response
Generate Script
Authorization
Basic Auth
OAuth 1.0:
OAuth 2.0
Uploading a file using REST Client
Sahi Framework
Layers in Automation
Business Layer
Implementation Layer
Accessor Repository Layer
Recommendations
Scenario
Sample Scenario File
Sahi Script Library
Executing the Scenario file
Playback Reports
Syntax
Variables
Simple variables
Assigning value returned by function
SetUp and TearDown
Data driven testing
Using External Data
When data has a single row
Case1
When data has multiple rows
Case2
Case3
Case4
Case5
Case6
Case7
Scenario Editor
Launching the Scenario Editor
Introduction to the Web UI
Key features
loadSahi
Detail box
Red colored notification
List of shortcuts
CTRL combination shortcut keys
Scenario with Java
Configuring Folder Structure For Java
Java Class Declaration Rules
Sample Template
Sample Java Class
Java Class Method Invocation Rule
Prominent Features
Sahi does not support
Sample Scenario
Loading Java classes and libraries
Executing the Scenario file
Play back reports/logs
Syntax
Variables
Simple variables
Assigning value returned by function
SetUp and TearDown
Data driven testing
Using External Data
When data has a single row
Case1
When data has multiple rows
Case2
Case3
Case4
Case5
Scenario Editor Java
Launching the Scenario Editor
Introduction to the Web UI
Key features
importJava
Sample Template
Detail box
Red colored notification
List of shortcuts
CTRL combination shortcut keys
ALT combination shortcut keys
Function keys
Other useful shortcut keys
Sahi Suites
Plain Suites
Data Driven Suites
Introduction
Structure
Structure Explained
Data Driven Suites with testcases
Running Data Driven Suites
Variable $isDataPassed and _isDataPassed()
Playback
Playback via Controller
Playback via Editor
Playback via Ant
Playback on a single machine
Distributed playback via ANT
Distributed run on the same Master
Distributed run on a different Master
Ability to register Nodes externally (from Sahi Pro V6.1.0)
Killing a running script/suite
Playback via Maven
Playback via Maven
Pre-requisites
Email Properties and Templates
Email.properties file explained
Configuration file for javax.mail
Sample properties file
Email template
Autoheal
Jenkins Integration
Sahi with Jenkins
Prerequisites
Configure Jenkins
View Sahi Pro HTML Logs in Jenkins
Azure DevOps Integration
Prerequisites
Configure Azure DevOps with GitHub
Configure GitHub
Configure Self-hosted Agent pool Azure DevOps
Personal access token (PAT) generation
Configure Azure DevOps
TeamCity Integration
Sahi with TeamCity
Prerequisites
Configure TeamCity
View Sahi Pro HTML Logs in TeamCity
Headless Playback
Sahi headless with PhantomJS
Documentation since Sahi Pro V4.3.2
For Windows:
For Linux:
For Mac:
Older Documentation (before Sahi Pro V4.3.2)
Sahi headless with Google Chrome
For Windows:
For Linux:
For Mac:
Sahi headless with Mozilla Firefox
For Windows:
For Linux:
For Mac:
Sahi headless with Xvfb
What is xvfb?
Installing Xvfb
Ubuntu
For Fedora
For other linux
Setting up Xvfb on display 1
Running test in Xvfb headless browser through Sahi
Run Sahi Scripts from Java
Problem
Java code invoking DSahiRunner
Java code invoking TestRunner
The Sahi script being invoked
Passing parameters into Sahi script from Java
Passing data values from the Script back to Java
Run from command line
Playback via testrunner
Distributed playback via drun
drun
drun_different_master
Integrating Sahi into other Tools via REST APIs
Set Sahi Server
Get Script Directory
Get All Scripts Path In The Given Directory
Get Available Modes
Get All Available Browsers
Get All Available Android Devices/Emulators
Get All Available iOS Devices/Simulators
Running the Script/Suite
Check the status of Script/Suite
Get the Suite logs
Get the Script Log
Running the Script/Suite - Distributed Run
Register Nodes to a running Suite
Cleanup after executing script
Kill a running Script/Suite
Load Testing
Reports
Sahi Intermediate Statuses
Sahi Statuses
Report Screens and Navigation
Downloading reports
Auto Refresh Logs
Filtering Network Activity
Convert Logs into English
Javascript Code Coverage Reports
Suite Analysis
Reports - Architecture and Flow
Understanding reports and report types
Modifying an existing reporting type
Adding a new custom reporting type
Report Customizations
Sort suite report
Add custom fields in Suite reports
Set pass threshold percentage for Suite or Data Driven Suite
Offline logs for Controller Playback
Deleting DB reports
Javascript Code Coverage
Enable JS Code Coverage
Enable for all scripts/suites
Enable at suite/script run
JS Code Coverage Report
Suite Analysis
Suite Analysis Report
Failed Scripts History
Success Scripts With Failure History
Use a Different Database
Storing Reports in MySQL
Create a Database
Creating Tables
Add MySQL Driver Jars to Sahi Classpath
Point Sahi to use the MySQL Database
Restart and Run
Trouble-shooting
Storing Reports in MSSQL
Create a Database
Creating Tables
Add MSSQL Driver Jars to Sahi Classpath
Point Sahi to use the MSSQL Database
Restart and Run
Storing Reports in ORACLE
Create a Database Connection
Add ORACLE Driver Jars to Sahi Classpath
Point Sahi to use the ORACLE Database
Restart and Run
Storing Reports in PostgreSQL
Create a Database
Creating Tables
Add PostgreSQL Driver Jars to Sahi Classpath
Point Sahi to use the PostgreSQL Database
Restart and Run
Sync Reports to Central Database
Sync to a Central Database
Manual Sync
Auto Sync
Sahi Master Machine
Trigger Email After Sync
Destination Machine (Central Database Machine)
Mobile Web Automation
Recording for mobile browser
Playback on mobile browser
Pre-requisites
Run From Mobile Device
Run Android Browser Script From Sahi Pro Editor
Run iOS Browser Script From Sahi Pro Editor
Sahi on iPad
Flex Automation
Introduction
Compile with sfl.swc using command line
Compile using Ant
Compile using Adobe Flash Builder (Add SWC files to Flex Builder projects)
Recording a flex application
Identification of Flex Components
Recognizing Custom Components
Performing actions on Flex elements
Relational operators in SFL
Known Issues
Tips on usage
Flex app and Sahi Pro version
Desktop Add-on
Prerequisites
Download Sahi Pro Desktop Add-on
Upgrade Sahi Pro Desktop Add-on
Install Sahi Pro Desktop Add-on
Installing using Configure page
Installing using Jar
Start Sahi Dashboard
Automating Windows and Java applications
Windows Desktop Automation
Start Windows Desktop Automation
Using the Controller
Element Identification
Evaluate Expression
Recording a script
Playback
From Controller
From the Editor
Scripting Notes
Auto Scrolling
Additional Configurations
Java Web Start Automation
Introduction
Identifying and Recording Java Web Start
Open Java Web Start from Sahi browser
Open Java Web Start from command-line
Use of Java Mode
Scripting Notes
Java Application Automation
Introduction
Recording Java Application
Launch Java Application from browser.
Launch Java Application from command-line
Use of Java Mode
Scripting Notes
Applet Automation
Approaches
Applet APIs
Trouble Shooting
Page hangs or Sahi does not recognize any element
Sample applet
Mobile Add-on
Download Sahi Pro Mobile Add-on
Install Sahi Pro Mobile Add-on
Installing using Configure page
Installing using Jar
Start Sahi Dashboard
Automating Android and iOS applications
Android Automation - Getting Started
Pre-requisites
Play Protect Warning
Warning: Send app for a security check?
Download and Install Sahi Pro Mobile Add-on
Quick Tutorial
Further Reading
Details
Features
Limitations
Android Viewer
Android Viewer Actions:
Screenshot Outline View
Configure Android Devices/Emulators
androidDevice Node
Recording a Script
Recording Hybrid App
Pre-requisites
Playback
From the Controller
From the Editor
Via ANT target
More Info
iOS Automation - Getting Started
Introduction
Pre-requisites
Download and Install Sahi Pro Mobile Add-on
Quick Tutorial
Further Reading
Details
Features
Limitations
Testing on a Simulator
Testing on a Device
iOS Viewer
Configure iOS Devices/Simulators
iOSDevice Node
Troubleshooting connection issues
Recording a Script
Recording Hybrid App
Pre-requisites
Playback
From the Controller
From the Editor
Via ANT Target
Automating System Dialogs
Known Issues
Demo Scripts
Test Apps
Test App Bundle Ids
Appendix
Element Identification - Suggestions
Element Identification - Notes on Alternate Candidates
Viewer - Starting or activating a new app
helperFunctions.sah
More Info
SAP Add-on
Prerequisites
Download Sahi Pro SAP Add-on
Install Sahi Pro SAP Add-on
Installing using Configure page
Installing using Jar
Start Sahi Dashboard
Automating SAP GUI applications
SAP GUI Automation - Getting Started
Start SAP GUI Automation
Using the Controller and Element Identification
Evaluate Expression
Recording a script
Playback
From Controller
From the Editor
AI Assist Add-on
Prerequisites
Download Sahi Pro AI Assist Add-on
Install Sahi Pro AI Assist Add-on
Installing using Configure page
Installing using Jar
Start Sahi Dashboard
Automating applications using Artificial Intelligence
AI Assist Automation - Getting Started
Start AI Assist Automation
Using the Controller
Evaluate Expression
View captured image
Playback
From Controller
From the Editor
AI Assist Accessor APIs
Load Testing with Sahi Pro
Setting up
Load Testing Using a Different Master
Reporting
Running load tests through ANT
Load Testing
Load Testing with Different Master
Attributes and their description
Command to execute the above ANT target
Sahi As Documentation Tool
Recording in Documentation Mode
Viewing and Editing Document
Other Language Drivers
Java Driver
Recording Java code
TypeScript Support
Pre-requisites
Building TypeScript
Complex Use Cases
Recording on Chromium Embedded Framework
Automate Browser Extensions
Automate an extension in Google Chrome
Integrations
Sahi AWS Integration
Prerequisites
Steps
AWS Device Farm Integration
Pre-requisites
Android Integration
iOS Integration
Sahi Robot Driver
Installation
Keywords
Sahi MTM Integration
Installation
MTM Bridge
Sahi Git Integration
Git Configuration
Understanding the Git Configuration dialog
Authentication Type
Git Commit
Understanding the Git Commit tab
Git History
Understanding the Git History tab
Git Compare
Sahi APIs
Overview
Browser Accessor APIs
Browser Action APIs
Miscellaneous APIs
Accessor API Basics
Overview
Identifying unique element
Identifying element among similar elements
Use of DOM Relation APIs
Use of Positional Relation APIs
_near vs _rightOf or_leftOf
Forcing Sahi Pro to ignore case when identifying elements
_setAccessorIgnoreCase
Browser Accessor APIs
Form Input Elements
_password
_radioGroup
_textbox
_hidden
_datebox
_datetimebox
_datetimelocalbox
_emailbox
_monthbox
_numberbox
_rangebox
_searchbox
_telephonebox
_timebox
_urlbox
_weekbox
_textarea
Button Like Elements
_button
_button
_checkbox
_radio
_submit
_submit
_reset
_reset
_imageSubmitButton
Dropdowns
_select
_option
File Uploads
_file
Table Elements
_table
_row
_cell
_tableHeader
Other HTML Tags
_link
_image
_label
_listItem
_list
_list
_div
_span
_fieldset
_datalist
_heading1
_heading2
_heading3
_heading4
_heading5
_heading6
_area
_map
_paragraph
_italic
_emphasis
_bold
_strong
_preformatted
_code
_blockquote
_canvas
_abbr
_hr
_iframe
_frame
_object
_embed
_dList
_dTerm
_dDesc
_font
_svg_rect
_svg_tspan
_svg_circle
_svg_ellipse
_svg_line
_svg_polygon
_svg_polyline
_svg_path
_svg_text
_article
_aside
_details
_figcaption
_figure
_footer
_header
_main
_mark
_nav
_section
_summary
_time
_video
_spandiv
_fltPlaceholder
_fltSemantics
_any
Generic Accessor APIs
_activeElement
_byId
_byText
_byClassName
_byXPath
_accessor
_bySeleniumLocator
Polymer Accessor APIs
_div
_coreIconButton
_coreIcon
_coreAllayKeys
_coreStyle
_coreTransitionPages
_coreAnimationGroup
_coreAnimation
_coreAnimationKeyframe
_coreAnimationProp
_coreCollapse
_coreDragDrop
_coreDrawerPanel
_coreDropdownBase
_coreDropdown
_coreDropdownMenu
_coreField
_coreHeaderPanel
_coreIconSet
_coreIconSetSvg
_coreImage
_coreItem
_coreLabel
_coreList
_coreLocalstorage
_coreMenu
_coreSubmenu
_coreMenuButton
_coreOverlay
_corePages
_coreRange
_coreScaffold
_coreScrollHeaderPanel
_coreScrollThreshold
_coreSelection
_coreSelector
_coreSplitter
_coreTooltip
_paperButton
_paperCheckbox
_paperActionDialog
_paperDialogBase
_paperDialog
_paperDropdown
_paperDropdownMenu
_paperIconButton
_paperAutogrowTextarea
_paperCharCounter
_paperInputDecorator
_paperInput
_paperItem
_paperMenuButton
_paperProgress
_paperRadioButton
_paperRadioGroup
_paperRipple
_paperShadow
_paperSlider
_paperSpinner
_paperTabs
_paperTab
_paperToast
_paperToggleButton
_paperFab
_selectInput
_selectInputItem
Relation APIs
DOM Relation APIs
_near
_in
_startLookInside
_stopLookInside
Positional Relation APIs
_rightOf
_leftOf
_leftOrRightOf
_under
_above
_aboveOrUnder
Parent APIs
_parentNode
_parentCell
_parentRow
_parentTable
Action APIs
Mouse Events
_click
_doubleClick
_rightClick
_mouseDown
_mouseUp
_mouseOver
_check
_uncheck
_setSelected
_setValueFromList
_expand
_collapse
_dragDrop
_dragDropXY
_dropFile
_xy
Touch Events
_tap
_touch
_touchStart
_touchEnd
_touchCancel
_touchMove
_swipe
Keyboard Events
_setValue
_keyDown
_keyUp
_keyPress
_type
_setPassword
Focus Events
_focus
_removeFocus
_blur
Text Selection
_selectRange
_selectTextRange
Page Navigation
_navigateTo
Native Events
_typeNative
_keyPressNative
_typeKeyCodeNative
_focusWindow
_windowAction
_clickNative
_rightClickNative
_doubleClickNative
_clickNativeXY
_mouseOverNative
_dragDropNative
_dragDropNativeXY
File Upload
_setFile3
_setFile2
_setFile
Troubleshooting
Identifying Action URL
File upload using native events
File Download
File download overview
_lastDownloadedFileName
_saveDownloadedAs
_clearLastDownloadedFileName
File download APIs example
File download troubleshooting
Handling file downloads triggered in a new window
_sendHTMLResponseAfterFileDownload
File download from a different domain
_addToSession
Window open/close APIs
_closeWindow
_closeBrowser
_openBrowser
_openWindow
Calling Generic Code
_call
_eval
Authentication
_setClientCertificate
_setAuthentication
Screenshot APIs
_takeScreenShot
_takeScreenShots
_takePageScreenShot
_skipScreenShots
_skipScreenShotsComparison
_assertSnapShot
_compareImages
Configuring GraphicsMagick
Configure GM on Windows
Configure GM on Linux
Configure GM on Mac
Skip Screenshots
Notes
Include APIs
_include
_includeOnce
_dynamicInclude
_includeAR
_resource
_importJava
_loadJavaInstance
Fetch APIs
_getValue
_getText
_datalistFilter
_getOptions
_getCellText
_getSelectedText
_getAttribute
_exists
_areEqual
_isVisible
_isChecked
_isEnabled
_containsText
_containsHTML
_contains
_title
_getTableContents
_style
_position
_positionNative
_getSelectionText
_getCopiedText
Browser Detection APIs
_userAgent
_getScreenSize
_isIE
_isIE9
_isIE10
_isEdge
_isEdgeNew
_isFF
_isFF3
_isFF4
_isChrome
_isSafari
_isOpera
_isPhantomJS
_isBrave
_isHTMLUnit
Rich Text Editors (Content Editable elements)
Generic attribute fetching mechanism
_fetch
_set
_condition
Multiple Elements
_collect
_count
_collectAttributes
_collectElementsInfo
Assertion APIs
_assert
_assertTrue
_assertNotTrue
_assertFalse
_assertNull
_assertNotNull
_assertExists
_assertVisible
_assertNotVisible
_assertNotExists
_assertEqual
_assertEqualArrays
_assertNotEqual
_assertContainsText
_assertNotContainsText
_assertEqualImages
_assertHorizontallyAligned
_assertVerticallyAligned
_assertCentered
_assertVisiblyInside
_assertVisiblyOutside
_assertVisiblyOn
_assertFitsWidth
_assertFitsHeight
Logging APIs
_log
_logException
_logExceptionAsFailure
_logImage
_logOutput
_artifact
Masking logs
_maskLogs
_unmaskLogs
Example of _maskLogs _unmaskLogs
Disable/Enable INFO logging
_disableInfoLogging
_enableInfoLogging
Disable/Enable error logging
_disableDefaultErrorLogging
_enableDefaultErrorLogging
Code Folding
Disable Code Folding
Demarcating Test Cases
_testcase
HAR Logging
Globally enable HAR Logging
Locally enable HAR Logging
_startHarLogging
_stopHarLogging
_getHarLogs
Debug Helper APIs
_debug
_debugToErr
_debugToFile
_pause
_alert
_confirm
_prompt
_highlight
File APIs
Text Files
_readFile
_writeFile
_writeToFile
_deleteFile
_fileExists
_renameFile
_copyFile
CSV Files
_readCSVFile
_writeCSVFile
Excel APIs
_readExcelFile
_getExcel
Database APIs
_getDB
_getDB
_getDB
Using the SahiDB object
SahiDB.select
SahiDB.selectWithHeader
SahiDB.update
Accessing databases directly
Data Drive APIs
_dataDrive
Using with various data source APIs
Simple 2D array
CSV
Excel Sheet
Database
URL APIs
_readURL
Script/Suite Info APIs
_scriptName
_scriptPath
_scriptStartTime
_scriptStatus
_scriptInfo
_addToScriptInfo
_userDataDir
_userDataPath
_resolvePath
_sessionInfo
_suiteInfo
_addToSuiteInfo
_testcasesInfo
_isDataPassed
Script Execution Control APIs
_setMode
_wait
_setXHRReadyStatesToWaitFor
_byPassWaitMechanism
_setWaitTimes
_setStrictVisibilityCheck
_setAutomaticBlur
_setSpeed
_setPingDelayAfterStep
_stopOnError
_continueOnError
_runUnitTests
_fail
_stop
_stopTestCase
Script Synchronization
_lock
_unlock
_lockWindow
_unlockWindow
Callback functions
onScriptFailure
onScriptError
onScriptEnd
Callback example
Taking screenshots on error/failure
Force Sahi to continue on error after screenshots and logging.
onBeforeStep
onAfterStep
Recovery Functions (DEPRECATED)
_setRecovery
_removeRecovery
HTTP Header Manipulation APIs
_setHttpHeader
_addHttpHeader
_removeHttpHeader
_resetHttpHeader
_mapDomainToIP
Keep-Alive
_disableKeepAlive
_enableKeepAlive
Cookie APIs
_cookie
_createCookie
_deleteCookie
Cookie Manager
HTTP Response Manipulation APIs
_addResponseSubstitutionRule
_removeResponseSubstitutionRule
URL Mock APIs
_addMock
_mockImage
_removeMock
Javascript Dialogs
Alert
_lastAlert
_expectAlert
_clearLastAlert
Alert Example
Confirm
_lastConfirm
_expectConfirm
_clearLastConfirm
Confirm Example
Prompt
_lastPrompt
_expectPrompt
_clearLastPrompt
Prompt Example
Print dialog
_printCalled
_expectPrint
_clearPrintCalled
Rich Text Editors
Identification
_rte
RTE Fetch APIs
_rteText
_rteHTML
RTE Action APIs
_rteWrite
RTE Text Selection APIs
Popup Windows
_selectWindow
_popup
_getWindows
_windowExists
_getRecentWindow
Multiple Domains
_selectDomain
_domain
Frames and Domains
Frames from same domain
Frames from different domains
Subdomains with document.domain
Multiple Browsers
_launchNewBrowser
_selectBrowser
Multiple Languages
_setLanguage
Multiple Translation Files
Controlling Translation
Do NOT Translate. Use String Literal (L:)
Provide the Key itself, instead of reverse look up (K:)
Execute External Programs
_execute
Utility APIs
_random
_extract
_trim
_toJSON
_encrypt
_getSessionId
Rest APIs
RESTRequest
RESTRequest.addToQueryString
RESTRequest.addToBody
RESTRequest.setHeader
RESTRequest.setURL
RESTRequest.setBody
RESTRequest.setCredentials
RESTRequest.setAuthCredentials
RESTRequest.submit
RESTResponse
RESTResponse.getResponseCode
RESTResponse.getHeader
RESTResponse.getBodyAsString
RESTResponse.getBody
Parameter
Parameter.add
Parameter.replace
Parameter.remove
Parameter.getQueryString
Alignment APIs
_areHorizontallyAligned
_areVerticallyAligned
_isCentered
_isVisiblyInside
_isVisiblyOutside
_isVisiblyOn
_fitsWidth
_fitsHeight
Layout APIs
_getLayout
_readLayoutFile
_verifyLayout
Layout verification example
Web Crawler APIs
_crawlWebsite
Documentation APIs
_startDocumentation
_stopDocumentation
---
Flex Accessor APIs
Flex Elements
uitextfield
advanceddatagrid
advanceddatagridbaseex
advanceddatagridgroupitemrenderer
alert
button
buttonbar
buttonlabelplacement
checkbox
colorpicker
combobase
combobox
datagrid
datagridheader
datagridcolumn
datagriditemrenderer
datechooser
datefield
filesystemcombobox
filesystemdatagrid
filesystemenumerationmode
filesystemhistorybutton
filesystemlist
filesystemsizedisplaymode
filesystemtree
flexnativemenu
formitemlabel
horizontallist
hrule
hscrollbar
hslider
html
image
label
linkbar
linkbutton
list
menu
menubar
menubaritem
mxftetextinput
navbar
numericstepper
olapdatagrid
popupbutton
popupmenubutton
progressbar
progressbardirection
progressbarlabelplacement
progressbarmode
radiobutton
radiobuttongroup
richtexteditor
spacer
swfloader
tabbar
text
textarea
textinput
tilelist
togglebuttonbar
tooltip
tree
videodisplay
vrule
vscrollbar
vslider
scrollthumb
piechart
pieseries
wedgeitemrenderer
columnset
columnseries
sitecolumnchart
categorycolumnchart
listitemrenderer
listbasecontentholder
advancedlistbasecontentholder
tab
buttonbarbutton
sliderlabel
sliderthumb
accordion
applicationcontrolbar
box
boxdirection
canvas
controlbar
dividedbox
form
formheading
formitem
formitemdirection
grid
griditem
gridrow
hbox
hdividedbox
panel
tabnavigator
tile
tiledirection
titlewindow
vbox
vdividedbox
viewstack
columnchart
s_panel
s_label
s_textinput
s_button
s_hslider
s_vslider
s_dropdownlist
s_numericstepper
s_checkbox
s_textarea
s_buttonbar
s_buttonbarbutton
s_checkbox
s_combobox
s_datagroup
s_dropdownlist
s_hscrollbar
s_hslider
s_list
s_navigatorcontent
s_numericstepper
s_popupanchor
s_radiobutton
s_textarea
s_vscrollbar
s_radiobuttongroup
s_richeditabletext
s_spinner
s_tabbar
s_tilegroup
s_titlewindow
s_togglebutton
s_videodisplay
s_videoplayer
s_popupanchor
s_radiobuttongroup
s_richtext
s_tilegroup
s_datagrid
s_dataitem
s_form
s_formheading
s_formitem
s_gridcolumn
s_grid
s_gridcolumnheadergroup
s_image
s_defaultgriditemrenderer
Flex APIs
_flex
_f
_setFlexReadyCondition
---
Java Accessor APIs
Java Elements
_button | _jvJButton
_button | _jvJToggleButton
_table | _jvJTable
_jvJTableHeader
_menu | _jvJMenu
_jvJMenuItem
_jvJPopupMenu
_jvJCheckBoxMenuItem
_jvJRadioButtonMenuItem
_checkbox | _jvJCheckBox
_radio | _jvJRadioButton
_textbox | _jvJTextField
_textarea | _jvJTextArea
_jvJTextPane
_jvJEditorPane
_password | _jvJPasswordField
_jvJComboBox
_jvJTabbedPane
_jvJList
_jvChoice
_jvList
_label | _jvJLabel
_jvJPanel
_jvJSlider
_jvScrollbar
_jvScrollbar | _jvJScrollbar
_button | _jvButton
_textbox | _jvTextField
_textarea | _jvTextArea
_checkbox | _jvCheckbox
_label | _jvLabel
_jvJRootPane
_jvJLayeredPane
_jvJScrollPane
_jvJOptionPane
_jvJDialog
_jvJComponent
_jvJToolBar
_tree | _jvJTree
_jvSynthInternalFrameTitlePane
_jvJProgressBar
_jvTabDisplayer
_jvAutoHideContainer
_jvImageIcon
_button | _jvCustomButton
_jvCanvas
_jfxButton
_jfxHyperlink
_jfxTextField
_jfxTextArea
_jfxPasswordField
_jfxComboBox
_jfxCheckbox
_jfxRadioButton
_jfxToggleButton
_jfxMenuBar
_jfxToolBar
_jfxAnchorPane
_jfxGridPane
_jfxTilePane
_jfxStackPane
_jfxFlowPane
_jfxHBox
_jfxVBox
_jfxScrollPane
_jfxSplitPane
_jfxTabPane
_jfxTitledPane
_jfxTextFlow
_jfxLabel
_jfxImageView
_jfxChart
_jfxAxis
_jfxProgressBar
_jfxTableView
_jfxText
_jfxScrollbar
_jvCell
_jvJListItem
_jvJTreeItem
_jvDiamondIcon
_jvCustomIcon
_jfxCell
Oracle Applet Accessor APIs
Oracle Applet Elements
_button | _jvOrVButton
_jvOrTabBar
_label | _jvOrLWLabel
_label | _jvOrMultiLineLabel
_textbox | _jvOrVTextField
_textarea | _jvOrFLWTextArea
_checkbox | _jvOrExtendedCheckbox
_button | _jvOrButton
_jvOrLWScrollbar
_jvOrFormsTabPanel
_checkbox | _jvOrLWCheckbox
_jvOrVPopList
_jvOrToolBar
_jvOrLWMenuSeparator
_jvOrLWMenuItem
_jvOrLWMenuBar
_jvOrDrawnPanel
_textbox | _jvOrFormattedTextField
_button | _jvOrFormButton
_jvOrTitleBar
_jvOrEwtContainer
_jvOrFWindow
_jvOrButtonBar
_jvOrPushButton
_textbox | _jvOrLWTextField
_jvOrVTList
_jvOrListView
_jvOrExtendedFrame
_jvOrLWContainer
_jvOrFormDesktopContainer
_jvOrImageCanvas
_jvOrEwtLWScrollbar
_jvOrLWDataSourceList
_jvOrLWStatusBar
Windows Accessor APIs
Windows Elements
_generic
_button
_calendar
_checkbox
_select | _combobox | _wCombobox
_custom
_datagrid
_dataitem
_document
_textbox | _edit | _wEdit
_group
_header
_headeritem
_link | _hyperlink | _wHyperlink
_image
_list
_listview
_listitem
_menu
_menubar
_menuitem
_pane
_progressbar
_radio | _radiobutton | _wRadiobutton
_scrollbar
_seperator
_slider
_spinner
_splitbutton
_statusbar
_tab
_tabitem
_table
_text
_thumb
_titlebar
_toolbar
_tooltip
_tree
_treeitem
_treeviewitem
_treeview
_window
Windows APIs
_setSelectedExcelTab
_setCell
_typeCell
_drag
_drop
NX APIs
_attachExe
_attach
_capture
_captureUI
_stopCapture
_nxTableCount
_nxTable
_nxCell
Java APIs
_launchJavaWSApplication
_launchJavaApplication
_launchBrowserForApplet
_exitJavaProcess
_dragNative
_dropNative
_getCellIndex
_getIconPath
---
Android Accessor APIs
Android Elements
_aAppWidgetHostView
_aViewGroup
_mView | _aView
_aAbsoluteLayout
_aActionMenuView
_aAbsSeekBar
_aAbsSpinner
_aAdapter
_aAdapterView
_aAdapterViewAnimator
_aAdapterViewFlipper
_aAdvanceable
_aAlphabetIndexer
_aAnalogClock
_aArrayAdapter
_aAutoCompleteTextView
_aBaseAdapter
_aBaseExpandableListAdapter
_button | _mButton | _aButton
_aCalendarView
_checkbox | _mCheckBox | _aCheckBox
_aCheckedTextView
_aChronometer
_aCompoundButton
_aCursorAdapter
_aCursorTreeAdapter
_aDatePicker
_aDialerFilter
_aDigitalClock
_aEdgeEffect
_textbox | _aEditText
_aExpandableListAdapter
_aExpandableListView
_aFilter
_aFilterable
_aFilterQueryProvider
_aFrameLayout
_aGallery
_aGridLayout
_mGridView | _aGridView
_aHeaderViewListAdapter
_aHeterogeneousExpandableList
_aHorizontalScrollView
_aImageButton
_aImageSwitcher
_image | _aImageView
_aImage
_aLinearLayout
_aListAdapter
_aListPopupWindow
_aListView
_aMultiAutoCompleteTextView
_aNumberPicker
_aOverScroller
_aPopupMenu
_aPopupWindow
_mProgressBar | _aProgressBar
_aQuickContactBadge
_radio | _mRadioButton | _aRadioButton
_mRadioGroup | _aRadioGroup
_aRadialTimePickerView
_aRatingBar
_aRelativeLayout
_aRemoteViews
_aRemoteViewsService
_aResourceCursorAdapter
_aResourceCursorTreeAdapter
_aScroller
_mScrollView | _aScrollView
_mSearchView | _aSearchView
_aSectionIndexer
_aSeekBar
_aShareActionProvider
_aSimpleAdapter
_aSimpleCursorAdapter
_aSimpleCursorTreeAdapter
_aSimpleExpandableListAdapter
_aSlidingDrawer
_aSpace
_aSpinner
_aSpinnerAdapter
_aStackView
_mSwitch | _aSwitch
_aTabHost
_aTableLayout
_aTableRow
_mTabWidget | _aTabWidget
_aTextClock
_aTextSwitcher
_label | _aTextView
_aThemedSpinnerAdapter
_aTimePicker
_aToast
_aToggleButton
_mToolbar | _aToolbar
_aTwoLineListItem
_aVideoView
_aViewAnimator
_aViewFlipper
_aViewSwitcher
_aWrapperListAdapter
_aZoomButton
_aZoomButtonsController
_aZoomControls
_mWebView | _aWebView
_aCircleImageView
_aContentLoadingProgressBarV4
_aDrawerLayoutV4
_aDrawerLayoutImplV4
_aMaterialProgressDrawableV4
_aNestedScrollViewV4
_aSlidingPaneLayoutV4
_aSpaceV4
_aSwipeProgressBarV4
_aSwipeRefreshLayoutV4
_aCompoundButtonCompatV4
_aCompoundButtonCompatApi23V4
_aCompoundButtonCompatLollipopV4
_aListPopupWindowCompatV4
_aListPopupWindowCompatKitKatV4
_aListViewCompatV4
_aListViewCompatKitKatV4
_aPopupMenuCompatV4
_aPopupMenuCompatKitKatV4
_aPopupWindowCompatV4
_aPopupWindowCompatApi21V4
_aPopupWindowCompatApi23V4
_aPopupWindowCompatKitKatV4
_aScrollerCompatV4
_aSearchViewCompatV4
_aTextViewCompatV4
_aTextViewCompatApi23V4
_aTextViewCompatJbV4
_aTextViewCompatJbMr1V4
_aTextViewCompatJbMr2V4
_aTintableCompoundButtonV4
_aViewPagerV4
_aMenuCompatV4
_aMenuItemCompatV4
_aScrollingViewV4
_aViewCompatApi24V4
_aViewCompatBaseV4
_aViewCompatJBV4
_aViewCompatJellybeanMr1V4
_aViewCompatJellybeanMr2V4
_aViewCompatKitKatV4
_aViewCompatLollipopV4
_aViewCompatMarshmallowV4
_aViewGroupCompatV4
_aViewGroupCompatJellybeanMR2V4
_aViewGroupCompatLollipopV4
_aViewParentCompatV4
_aViewParentCompatKitKatV4
_aViewParentCompatLollipopV4
_aWindowCompatV4
_aViewCompatV4
_aViewConfigurationCompatV4
_aViewPropertyAnimatorCompatV4
_aViewPropertyAnimatorCompatJBV4
_aViewPropertyAnimatorCompatJellybeanMr2V4
_aViewPropertyAnimatorCompatKKV4
_aViewPropertyAnimatorCompatLollipopV4
_aActionModeV7
_aCollapsibleActionViewV7
_aActionMenuItemV7
_aActionMenuItemViewV7
_aBaseMenuPresenterV7
_aBaseMenuWrapperV7
_aBaseWrapperV7
_aCascadingMenuPopupV7
_aExpandedMenuViewV7
_aListMenuItemViewV7
_aMenuAdapterV7
_aMenuPopupV7
_aMenuViewV7
_aAbsActionBarViewV7
_aActionBarContainerV7
_aActionBarContextViewV7
_aActionBarOverlayLayoutV7
_aActionMenuViewV7
_aActivityChooserModelV7
_aActivityChooserViewV7
_aAlertDialogLayoutV7
_aAppCompatAutoCompleteTextViewV7
_aAppCompatButtonV7
_aAppCompatCheckBoxV7
_aAppCompatCheckedTextViewV7
_aAppCompatEditTextV7
_aAppCompatImageButtonV7
_aAppCompatImageViewV7
_aAppCompatMultiAutoCompleteTextViewV7
_aAppCompatPopupWindowV7
_aAppCompatRadioButtonV7
_aAppCompatRatingBarV7
_aAppCompatSeekBarV7
_aAppCompatSpinnerV7
_aAppCompatTextViewV7
_aButtonBarLayoutV7
_aContentFrameLayoutV7
_aDecorToolbarV7
_aDefaultItemAnimatorV7
_aDialogTitleV7
_aDropDownListViewV7
_aFitWindowsFrameLayoutV7
_aFitWindowsLinearLayoutV7
_aFitWindowsViewGroupV7
_aLinearLayoutCompatV7
_aListPopupWindowV7
_aListViewCompatV7
_aMenuPopupWindowV7
_aPopupMenuV7
_aScrollingTabContainerViewV7
_aSearchViewV7
_aSwitchCompatV7
_aToolbarV7
_aCardViewV7
_aCardViewApi21V7
_aCardViewDelegateV7
_aCardViewImplV7
_aCardViewJellybeanMr1V7
_aGridLayoutV7
_aRecyclerViewV7
_aLinearSmoothScrollerV7
_aSpaceV7
iOS Accessor APIs
NOTES
iOS Elements
_label | _iStaticText
_textbox | _iTextField
_textarea | _iTextView
_password | _iSecureTextField
_button | _mButton | _iButton
_cell | _mCell | _iCell
_mGridView | _iGridView
_iPicker
_iPickerWheel
_iDatePicker
_mSwitch | _iSwitch
_iSlider
_mView | _iOther
_iPageIndicator
_mProgressBar | _iProgressBar
_iActivityIndicator
_iSegmentedControl
_iNavigationBar
_iWindow
_iAlert
_iKey
_iKeyboard
_image | _iImage
_iIcon
_mSearchView | _iSearchView
_iMap
_mWebView | _iWebView
_iDialog
_mTabWidget | _iTabWidget
_iTabGroup
_iTab
_mToolbar | _iToolbar
_iStatusBar
_mScrollView | _iScrollView
_iScrollBar
_radio | _mRadioButton | _iRadioButton
_mRadioGroup | _iRadioGroup
_checkbox | _mCheckBox | _iCheckBox
_iMenu
_iMenuItem
_iMenuBar
_iMenuBarItem
_iPopUpButton
_iMenuButton
_iToolbarButton
_iSheet
_iDrawer
_iDisclosureTriangle
_iComboBox
_iPopover
_iTableRow
_iTableColumn
_iOutline
_iOutlineRow
_iBrowser
_iToggle
_iLink
_iIncrementArrow
_iDecrementArrow
_iTimeline
_iRatingIndicator
_iValueIndicator
_iSplitGroup
_iSplitter
_iRelevanceIndicator
_iColorWell
_iHelpTag
_iMatte
_iDockItem
_iRuler
_iRulerMarker
_iGrid
_iLevelIndicator
_iLayoutArea
_iLayoutItem
_iHandle
_iStepper
_iTouchBar
_iStatusItem
_iGroup
_iApplication
_iAny
Mobile APIs
Types of APIs
APIs Common Across Application Types
Mobile Common APIs
Android APIs
iOS APIs
Common APIs
Action APIs
_mActivateApplication
_mLongClick
_mPinchOpen
_mPinchClose
_mPressHome
_mSetOrientation
Fetch APIs
_mOSVersion
_mGetOrientation
Swipe APIs
_mSwipeUp
_mSwipeDown
_mSwipeLeft
_mSwipeRight
WebView APIs
_mStartWebContext
_mStopWebContext
Mobile Browser APIs
_launchNewMobileBrowser
_launchNewMobileBrowser2
Other APIs
_deviceInfo
Android APIs
Action APIs
_aWakeUp
_aPressBack
_aPressRecentApps
_aPressSearch
_aPressMenu
_aPressEnter
_aPressDelete
Fetch APIs
_aIsScreenOn
Implicit scroll APIs for element identification
_aEnableVerticalScroll
_aEnableHorizontalScroll
_aDisableScroll
_aIsVerticalScrollEnabled
_aIsHorizontalScrollEnabled
_aIsScrollEnabled
Explicit scroll APIs
_aScrollLeftMost
_aScrollRightMost
_aScrollTopMost
_aScrollBottomMost
_aScrollLeft
_aScrollRight
_aScrollUp
_aScrollDown
Android WebView APIs
_aStartWebContext
_aStopWebContext
Other APIs
_aSetSwipeDeadzonePercentage
iOS APIs
Action APIs
_iTwoFingerTap
_iTapWithNumberOfTapsNumberOfTouches
_iRotate
_iActivateSiriWithVoiceRecognitionText
_iPressVolumeUp
_iPressVolumeDown
Fetch APIs
_iIsSelected
_iIsDevice
_iGetApplicationState
System Dialog APIs
_iExpectSystemDialog
_iInteractWithApp
_iLastSystemDialog
_iClearLastSystemDialog
System Dialog Example
Other APIs
_iSetAutoDismissKeyboard
Multiple Mobile Devices
_connectDevice
_selectDevice
---
SAP Accessor APIs
SAP Elements
_abapEditor
_apoGrid
_barChart
_box
_button
_calendar
_chart
_checkbox
_colorSelector
_combobox
_containerShell
_contextmenu
_contextmenuItem
_ctextfield
_customControl
_dialogshell
_dockShell
_eaiViewer2d
_eaiViewer3d
_gosShell
_graphAdapt
_gridView
_htmlViewer
_label
_listContainer
_map
_menu
_menubar
_messageWindow
_netChart
_offficeIntegration
_okCodeField
_password
_picture
_popupWindow
_radio
_sapChart
_scrollbar
_scrollContainer
_simpleContainer
_splitter
_splitterContainer
_stage
_statusBar
_statusPane
_tab
_table
_tableCell
_tabStrip
_textbox
_textEdit
_titlebar
_toolbar
_toolbarButton
_toolbarControl
_tree
_treeNode
_treeNodeItem
_userarea
_window
SAP APIs
_launchSAPGUI
_closeSAPGUI
_openSAPConnection
_closeSAPConnection
_createNewSAPSession
_maximizeWindow
_minimizeWindow
_restoreWindow
_resizeWindow
_getStatusInformation
_selectRows
_selectColumns
_htmlFormSubmit
---
AI Assist Accessor APIs
_aiImage
_aiText
_byImageRecognition
_byOCRText
AI Assist APIs
_getTextAi
---
Sahi Scripting
Sahi Scripting Basics
Statements
Variable declaration
Comments
if statements
for loops
while loops
Structuring Sahi Code
Functions
Including another Sahi script file
Some Basic Data Types
Data Types
Data Structures
Single dimensional array
Two dimensional array
Associative Array
Exception Handling
Try Catch
Corrective Action
Corrective Action and Log the Exception Message
Corrective Action, Log and then Fail
Script Callback Functions
Taking screenshots
Force Sahi to continue on error after screenshots and logging.
_setRecovery
Including Sahi script globally
Multiple Modes
Available Modes
Playback Start Mode
Notes on Default and Start With options
Working With Javascript Dialogs
Log javascript popup with expectation in reports
Log javascript popup without expectation in reports
Color of javascript dialog messages in reports
401 Authentication
401 authentication page for NTLM scheme loops or does not login even if the credentials are provided
Sahi authenticates automatically but the username is improper
Handling 401 authentication page for NEGOTIATE or KERBEROS scheme
401 dialog or page does not appear with Sahi
Client Certificate Authentication
Parsing XML in Sahi
Parsing XML containing namespaces
Calling Java
Calling inbuilt Java classes
Working with Java object directly in Sahi Script
Calling Java classes in Custom Packages
Accessing Your Own Custom Classes from Sahi
Sample Custom Class
Add to Classpath
Call loadProperties Method from Sahi Script
Adding Jars to Sahi Classpath
From command-line
From ant
Working with SSH
Prerequisites
The Sahi Script
NOTES
Working with Telnet
Prerequisites
The Sahi Script
NOTES
Reading PDF Files
Prerequisites
Reading static pdf file
Reading values of editable fields from pdf file
Sending Emails
Working with Polymer
Recommendations
Sample Script
Tweaking Sahi APIs
Accessor metadata explained
accessor_metadata JSON explained
Adding a custom element
Identifying elements by an attribute not available with Sahi
F.A.Q.
Evaluation Questions
Browser and OS support
AJAX support
SSL support
Configuring Sahi
Can Sahi work without proxy configuration?
Can Sahi work with IE mode on Microsoft Edge?
How does Sahi identify elements?
Standard attributes
Adding a custom element
Identifying elements by an attribute not available with Sahi
Relation to an anchor element
Handling streaming responses
File Downloads
Pdf and Word files
Iterate a list of wsdl urls
Saving an image
File download dialog appears with Save & Open options
Blank page after download
Blank page appears
File does not get downloaded to download folder in Sahi
Downloaded file does not get saved
How to delete cookies
How to show custom fields in reports
How to show custom fields in Excel reports
How to access custom fields in a test script
How to customize HTML reports
Eclipse configuration for Syntax Highlighting and Template proposals and Refactoring in Sahi scripts
Sahi scripts - .sah Vs .js
Eclipse configuration
Refactoring a script into functions
Renaming a function or variable name
Navigate to functions
How can I access an Outlook email from a Sahi script?
How do I extract visible text of a div that changes dynamically?
How do I extract text partially from dynamically changing visible text?
Example 1
Example 2
How can I automate FTP file transfer?
Writing Unit tests - A Use Case
Getting the text of a tool tip
Getting cell data from a table
Multiple scripts folders and Network Share
Multiple Scripts folders
Scripts on a network share
Using license file
How to scroll
Check movement of scrollbar
Using Diagnose
Diagnose does not return any results
How to login automatically on windows
How is _under different in 5.x.y?
UserDefinedId
UserDefinedId not visible in V5.x.y by default
Web Services via REST APIs
Sahi with Notepad++
Sahi with TextPad
Minimized and closed Remote Desktop Connection
Minimised Remote Desktop Connection
Closed Remote Desktop Connection
System on Standby Mode
How to start Sahi Runner as Service
Steps to run Sahi Pro as a Service
Miscellaneous
Verifying Sahi installation
How can I run the same script multiple times with different parameters simultaneously?
How can I launch/execute a url that initiates some long running activity?
Is it possible to add watch variables and debug a Sahi script?
Copy row text and output to csv file
Java assertEquals
How to handle onbeforeunload popup
Using pound and euro symbols
Reading an XML file
Integration with XStudio
Integration with FitNesse
Using _rteWrite()
Accessing Sahi from a different browser
How can I prevent caching of page?
Text of alert shown through Ext.msg.show
_wait does not work inside an Excel file
When is _condition needed?
_assertExists parameters
Java driver tests in parallel
Accessing a random row from a grid
How do I set Date field which has date separator?
Integrate Sahi with existing test repository tools
Read data from Excel using Sahi APIs
_assertExists in if condition
Assert equality of arrays
Does Sahi Excel framework support .xlsx files?
Identifying parent of element
Identify element class using Java Driver
Scripts in suite do not run in order
401 authentication dialog
Browser in testrunner command
Run tests in multiple browsers simultaneously
Selective login
Silverlight support
Dropdown with Java driver
Getting absolute file path
Regular expressions in Sahi
Regular expression usecase
Check to see that page is functional
Excel files as part of Suite
Reports database
Scheduling tests
Drag and drop
Single smoke script to test multiple sites
_debug() output
Sahi with file: URLs
_runUnitTests
Other Resources
How to collect Javascript Code Coverage for multiple domain?
Troubeshooting
Trouble Shooting
Startup Issues
Browsers do not show up on the Sahi Dashboard
Browser does not load Application page
Browser does not load page in local network when fixed external proxy is configured
Elements on a page are not recognized on an IE browser
Page Loading or Rendering
Editor opening issues
Unable to open Sahi Editor on Chromium based browsers like Google Chrome, Edge, Brave
Drag and drop issues
Drag and drop does not seem to work
Eclipse integration issues
Syntax highlighting does not work
Syntax highlighting works but intellisense does not seem to work
Email related issues
sendEmail fails for Microsoft Outlook with Permission denied: connect error
Flex Issues
Flex controls show up as _object or _embed
Calling custom Java code
TypeError: Cannot call property ... in object
Unable to view playback logs
Oracle Forms Issues
Oracle forms is unable to connect
Proxy Issues
Cannot connect to internet when Sahi is not running
Cannot connect to Sahi proxy from firefox after changing the proxy port
'Server not found' error occurs on launching the Mozilla Firefox browser.
SSL Issues
Handshake failure
Certificate revocation error in Google Chrome
File upload with full path in Internet Explorer
File upload failing in web applications which requires full path for the file
Performance Issues in Playback
Browser Playback becomes slow
System becomes slow during Sahi Playback
Miscellaneous Issues
Content blocked from being loaded
Element's class identified incorrectly
Controller does not open in Linux
Incorrect screenshot captured with dual screen
Issues in Microsoft Edge versions 44.19041 and below
Sahi Pro console Edge 'PIDs not available'
Issues in Safari browser
Script not executing on Safari browser
Elements not getting identified on Safari browser
Playback fails on Safari browser
Extra tabs except Start URL open in Safari browser
Screenshot Issues in Mac OS
Incorrect screen shot captured in Mac operating system
Incorrect screen shot captured in Firefox browser on Mac operating system
Issues in Chromium based browsers
Multiple Chrome instances
Playback fails randomly on popup windows