HTTP Header Manipulation APIs
abstract
These APIs help manipulate HTTP headers to test behaviour of modified browsers or devices.
Sets the HTTP header for all further requests made in this browser session.
If a HTTP header of given key already exists, it will be replaced.
Parameters
$key | string | HTTP header name |
$value | string | HTTP header value |
Return Value
Modes Supported :
Raw Script
//Set the User-Agent to that sent by iPad2
var $userAgent = "Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X; en-us) " +
"AppleWebKit/534.46 (KHTML, like Gecko) " +
"Version/5.1 Mobile/9B176 Safari/7534.48.3";
_setHttpHeader("User-Agent", $userAgent);
Sahi Pro Classic API :_setHttpHeader
Adds the HTTP header for all further requests made in this browser session.
If a HTTP header of given key already exists, both old and new headers will be sent.
warning
Only specific HTTP headers can be sent in multiples. Read the HTTP specification and understand the behaviour
before you use this API.
Parameters
$key | string | HTTP header name |
$value | string | HTTP header value |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_addHttpHeader
Removes a particular HTTP header.
For example, can be used to check behaviour when user-agent is not sent
Parameters
$key | string | HTTP header name |
Return Value
Modes Supported :
Raw Script
_removeHttpHeader("User-Agent");
Sahi Pro Classic API :_removeHttpHeader
If _addHttpHeader or _setHttpHeader or _removeHttpHeader had been called in this session before,
calling Reset Http Header will revert it to the original behaviour, before any of those APIs were called.
Parameters
$key | string | HTTP header name |
Return Value
Modes Supported :
Raw Script
_removeHttpHeader("User-Agent"); // remove header
// do a few actions
// requests will not be sending user-agent
_resetHttpHeader("User-Agent"); // revert back
// will send user-agent header as the browser normally does.
Sahi Pro Classic API :_resetHttpHeader
Used to map a domain to a specific IP. For example while testing, a thirdparty service may be mocked out with a server on a local IP.
If you add
If you add
Parameters
$urlBase | string | url with protocol, domain and port (if present). Ex. http://dummy.domain.com/ or https://dummy.domain.com:8080/ |
$ip | string|object | IP to map url's domain to. If $ip is not specified or is null, any existing mapping for that domain will be removed. |
Return Value
Modes Supported :
Raw Script
_mapDomainToIP("http://www.google.com/", "127.0.0.1");
Sahi Pro Classic API :_mapDomainToIP
Keep-Alive
The connection between the browser and proxy normally uses keep-alive=true. Sometimes, pages with applets or flex objects hang if keep-alive is true. In such cases, _disableKeepAlive can be used before loading the applet/flex object and then _enableKeepAlive() can be called to restore original behaviour.
Disable Keep Alive() turns off Keep-Alive between browser and proxy.
Parameters
None |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_disableKeepAlive
Enable Keep Alive() turns on Keep-Alive between browser and proxy.
Parameters
None |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_enableKeepAlive
Example:
_disableKeepAlive();
_call(loadPageWithFlashWhichHangsOtherwise());
_enableKeepAlive()
Cookie APIs
infoNOTE: $path was added Since Sahi Pro: 9.0.0. For old document Refer here
Get Cookie() gets the value of cookie with the given name for the current page.
Provide the path parameter if the cookie was assigned by the server to a specific path.
Parameters
$name | string | Cookie name |
$path | string optional | Location for which the cookie is assigned |
Return Value
string | Value of cookie with given name |
Modes Supported :
Raw Script
Sahi Pro Classic API :_cookie
warningWhile possible to create a cookie, there is no real reason to create one during automation.
Parameters
$name | string | Cookie name |
$value | string | Cookie value |
$days | integer | Days to expiry |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_createCookie
Deletes the cookie with given name for the current page. This may or may not work. A better way may be to use the Cookie Manager
Note that if you want to delete a cookie from
Cookie Manager" class="headinganchor2" hideFocus="hideFocus">Cookie Manager
Cookies are specific to domains. To see all cookies of a particular domain, you can navigate tohttp://yourdomain.com/_s_/dyn/Cookies_showAll
This page will show you all cookies associated with yourdomain.com.
You can choose and delete cookies from this page. This handles httpOnly cookies also.
Note that if you want to delete a cookie from
www.yahoo.com
, you should navigate to both
http://www.yahoo.com/_s_/dyn/Cookies_showAll
and
http://yahoo.com/_s_/dyn/Cookies_showAll
and delete the relevant cookie.
Parameters
$name | string | Cookie name |
Return Value
Modes Supported :
Raw Script
Sahi Pro Classic API :_deleteCookie