setCookies
Sets one or more cookies for the current page. Make sure you are on the page that should receive the cookie. You can't set a cookie for an arbitrary page without being on that page.
Usage
browser.setCookies({ name, value, path, domain, secure, httpOnly, expiry, sameSite })
Parameters
Name | Type | Details |
---|---|---|
cookie | Array.<WebDriver.Cookie> , WebDriver.Cookie | cookie object or object array. |
cookie.name optional | String | The name of the cookie. |
cookie.value optional | String | The cookie value. |
cookie.path optional | String | The cookie path. Defaults to "/" if omitted when adding a cookie. |
cookie.domain optional | String | The domain the cookie is visible to. Defaults to the current browsing context’s active document’s URL domain if omitted when adding a cookie. |
cookie.secure optional | Boolean | Whether the cookie is a secure cookie. Defaults to false if omitted when adding a cookie. |
cookie.httpOnly optional | Boolean | Whether the cookie is an HTTP only cookie. Defaults to false if omitted when adding a cookie. |
cookie.expiry optional | Number | When the cookie expires, specified in seconds since Unix Epoch. Must not be set if omitted when adding a cookie. |
cookie.sameSite optional | String | Whether the cookie applies to a SameSite policy. Defaults to None if omitted when adding a cookie. Can be set to either "Lax" or "Strict". |
Example
- Asynchronous Mode
- Synchronous Mode
setCookies.js
it('should set a cookie for the page', async () => {
await browser.url('/')
// set a single cookie
await browser.setCookies({
name: 'test1',
value: 'one'
// The below options are optional
// path: '/foo', // The cookie path. Defaults to "/"
// domain: '.example.com', // The domain the cookie is visible to. Defaults to the current browsing context’s active document’s URL domain
// secure: true, // Whether the cookie is a secure cookie. Defaults to false
// httpOnly: true, // Whether the cookie is an HTTP only cookie. Defaults to false
// expiry: 1551393875 // When the cookie expires, specified in seconds since Unix Epoch
})
// set multiple cookies
await browser.setCookies([
{name: 'test2', value: 'two'},
{name: 'test3', value: 'three'}
])
const cookies = await browser.getCookies()
console.log(cookies);
// outputs:
// [
// {name: 'test1', value: 'one', domain: 'www.example.com'},
// {name: 'test2', value: 'two', domain: 'www.example.com'},
// {name: 'test3', value: 'three', domain: 'www.example.com'}
// ]
});
setCookies.js
it('should set a cookie for the page', () => {
browser.url('/')
// set a single cookie
browser.setCookies({
name: 'test1',
value: 'one'
// The below options are optional
// path: '/foo', // The cookie path. Defaults to "/"
// domain: '.example.com', // The domain the cookie is visible to. Defaults to the current browsing context’s active document’s URL domain
// secure: true, // Whether the cookie is a secure cookie. Defaults to false
// httpOnly: true, // Whether the cookie is an HTTP only cookie. Defaults to false
// expiry: 1551393875 // When the cookie expires, specified in seconds since Unix Epoch
})
// set multiple cookies
browser.setCookies([
{name: 'test2', value: 'two'},
{name: 'test3', value: 'three'}
])
const cookies = browser.getCookies()
console.log(cookies);
// outputs:
// [
// {name: 'test1', value: 'one', domain: 'www.example.com'},
// {name: 'test2', value: 'two', domain: 'www.example.com'},
// {name: 'test3', value: 'three', domain: 'www.example.com'}
// ]
});
caution
Synchronous Mode will depcrecated with Node.js v16. With an update to the underlying Chromium version it became technically impossible to provide the same synchronous behavior. We recommend to start transition to asynchronous command execution. For more information, see our RFC.