t.deleteCookies Method
Deletes cookies from tested pages. Can be chained with other TestController
methods.
Multiple method overloads are available. Review overload options below to learn about different ways to specify target cookies.
The following example uses a t.deleteCookies
overload that removes a cookie with the specified name.
fixture`[API] Delete Cookies`
.page('https://devexpress.github.io/testcafe/example/');
test('Should delete the cookie with the specified name', async t => {
await t.setCookies({ name: 'apiCookie1', value: 'value1' });
await t.expect((await t.getCookies()).length).eql(1);
await t.deleteCookies('apiCookie1');
await t.expect((await t.getCookies()).length).eql(0);
});
The following example uses a t.deleteCookies
overload that deletes a cookie with the specified URL.
fixture('[API] Delete Cookies')
.page('https://devexpress.github.io/testcafe/example/');
test('Should delete cookies with the specified url', async t => {
//set a cookie for the Example page
await t.setCookies({ name: 'apiCookie1', value: 'value1' });
//set a cookie for localhost
await t.setCookies({ name: 'apiCookie2', value: 'value2' }, 'http://localhost');
//check the total number of cookies
await t.expect((await t.getCookies()).length).eql(2);
//delete the localhost cookie
await t.deleteCookies('apiCookie2', 'http://localhost');
const cookies = await t.getCookies();
await t
.expect(cookies.length).eql(1)
.expect(cookies[0]).contains({ name: 'apiCookie1', value: 'value1', domain: 'devexpress.github.io' });
});
The following example uses a t.deleteCookies
overload that deletes all cookies with the specified URL.
fixture('[API] Delete Cookies')
.page('https://devexpress.github.io/testcafe/example/');
test('Should delete all the cookies with the specified url', async t => {
//set a cookie for the Example page
await t.setCookies({ name: 'apiCookie1', value: 'value1' });
//set a cookie for the 'Thank you' page
await t.setCookies({
name: 'apiCookie2',
value: 'value2',
}, 'https://devexpress.github.io/testcafe/example/thank-you.html');
//check the cookies
let cookies = await t.getCookies();
await t
.expect(cookies.length).eql(2)
.expect(cookies[0]).contains({ name: 'apiCookie1', path: '/testcafe/example/' })
.expect(cookies[1]).contains({ name: 'apiCookie2', path: '/testcafe/example/thank-you.html' });
//delete cookies from the 'Thank you' page
await t.deleteCookies({ domain: 'devexpress.github.io', path: '/testcafe/example/thank-you.html' });
//check the cookies
cookies = await t.getCookies();
await t
.expect(cookies.length).eql(1)
.expect(cookies[0]).contains({ name: 'apiCookie1', path: '/testcafe/example/' });
});
t.deleteCookies()
deleteCookies() → this | Promise<any>
Deletes all cookies from all tested pages.
t.deleteCookies(name, urls)
deleteCookies(names: string | string[], urls?: string | string[]) → this | Promise<any>
Deletes cookies with the specified name and context.
Parameter | Type | Description |
---|---|---|
names | string \| string[] |
Cookie name(s) |
urls (optional) | string \| string[] |
Test page URL(s). If not specified, the method deletes cookies from all tested pages. |
t.deleteCookies(cookies)
deleteCookies(cookies: CookieOptions | CookieOptions[]) → this | Promise<any>
Deletes cookies that match the specified cookie object(s).
Parameter | Type | Description |
---|---|---|
cookies | CookieOptions \| CookieOptions[] |
Cookie object(s) |
If the cookie object does not specify domain
and path
, the method deletes cookies from all tested pages.
Cookie Object
A cookie object contains all properties that can be associated with a web cookie. The CookieOptions
interface declares the cookie object structure.
export interface CookieOptions {
name?: string;
value?: string;
domain?: string;
path?: string;
expires?: Date;
maxAge?: number | 'Infinity' | '-Infinity';
secure?: boolean;
httpOnly?: boolean;
sameSite?: string;
}
Field | Type | Description |
---|---|---|
name (optional) |
string |
Specifies the name of the cookie. |
value (optional) |
string |
Specifies the value of the cookie. |
domain (optional) |
string |
Specifies the domain associated with the cookie. |
path (optional) |
string |
Specifies the path associated with the cookie. |
expires (optional) |
Date |
Specifies the cookie expiration date (the time when the cookie is automatically erased). |
maxAge (optional) |
number \| 'Infinity' \| '-Infinity' |
Specifies the cookie’s expiration in seconds from the current moment. |
secure (optional) |
boolean |
Specifies that the cookie should be transferred only over HTTPS. |
httpOnly (optional) |
boolean |
Specifies that JavaScript code should not have access to the cookie. |
sameSite (optional) |
string |
Doesn’t allow the browser to send the cookie with requests that come from a different site. This option helps prevent XSRF attacks. |