如何在 WebdriverIO 中管理 Cookie?
我们可以在 WebdriverIO 中管理 Cookie。Cookie 有助于识别用户。这是一种有效的技术,可以将信息从一个网站会话传递到另一个会话,或在两个连接的网站的会话之间传递。
我们可以使用以下方法在 WebdriverIO 中添加、删除和获取 Cookie:
browser.setCookies - 用于为当前页面设置单个 Cookie 或多个 Cookie。要为页面设置 Cookie,我们必须先启动并处于该页面。
语法
browser.setCookies({cookie, cookie.name, cookie.value, cookie.path, cookie.domain, cookie.secure, cookie.httpOnly, cookie.expiry} )
这里,cookie 是 Cookie 对象或对象数组,可以包含以下值:
cookie.name - 可选参数,指 Cookie 名称。
cookie.value - 可选参数,指 Cookie 值。
cookie.path - 可选参数,指 Cookie 路径。默认值为 /(如果添加 Cookie 时未添加)。
cookie.domain - 可选参数,指 Cookie 域名。默认值为当前浏览上下文活动文档的 URL 域名(如果添加 Cookie 时未添加)。
cookie.secure - 可选参数,用于检查 Cookie 是否安全。默认值为 false(如果添加 Cookie 时未添加)。
cookie.httpOnly - 可选参数,用于检查 Cookie 是否为 HTTP 类型。默认值为 false(如果添加 Cookie 时未添加)。
cookie.expiry。
browser.getCookies - 用于从现有页面获取 Cookie。如果将 Cookie 名称作为参数提供给此方法,则将获取该特定 Cookie。否则,将获取当前页面上的所有 Cookie。
语法
//to get a specific cookie browser.getCookies(['Topic']) Or, //to get all cookies browser.getCookies()
browser.deleteCookies - 用于从现有页面删除 Cookie。如果将 Cookie 名称作为参数提供给此方法,则将删除该特定 Cookie。否则,将删除当前页面上的所有 Cookie。
语法
//to delete a specific cookie browser.deleteCookies(['Topic']) Or, //to delete all cookies browser.deleteCookies()
示例
代码实现
// test suite name describe('Tutorialspoint application', function(){ //test case it('Cookies', function(){ // launch url browser.url('https://tutorialspoint.com/index.htm') //set cookies browser.setCookies([ {name: 'topic1', value: 'WebdriverIO'}, {name: 'topic2', value: 'Selenium'} ]) //get a particular cookie const t = browser.getCookies(['topic1']) console.log(t); //get all cookies const a = browser.getCookies() console.log(a); //delete a cookie with name topic2 browser.deleteCookies(['topic2']) d = browser.getCookies() console.log(d) //delete all cookies browser.deleteCookies() m = browser.getCookies() console.log(m) }); });