Introduction
Sahi Pro Flowcharts
Using Flowcharts
Actions Reference
UI Elements
Sahi Pro Classic
Using Sahi
Sahi APIs
Sahi Scripting
Help
FAQs
Troubleshooting
Online Docs
Introduction
Sahi Pro Flowcharts
Using Flowcharts
Actions Reference
UI Elements
Sahi Pro Classic
Using Sahi
Sahi APIs
Sahi Scripting
Help
F.A.Q.
Trouble Shooting
Online Docs
Using Flowcharts
Actions Reference
UI Elements
Using Sahi
Sahi APIs
Sahi Scripting
F.A.Q.
Trouble Shooting
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 Suites
abstract
Suites are used to club together multiple scripts and execute as a single batch. There are 2 kinds of suites available with Sahi