Skip to content

Commit f7999dd

Browse files
authored
Manage cookie (#81)
* Add get cookies * Add get cookie by name * Add cookies
1 parent 6b138f7 commit f7999dd

File tree

5 files changed

+95
-2
lines changed

5 files changed

+95
-2
lines changed

Examples/browser-management/cookies.robot

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,40 @@ Suite Teardown Close Puppeteer
44
Test Teardown Close All Browser
55

66
*** Variables ***
7-
${DEFAULT_BROWSER} chrome
7+
${DEFAULT_BROWSER} webkit
88

99

1010
*** Test Cases ***
11+
Get all cookies
12+
${BROWSER} = Get variable value ${BROWSER} ${DEFAULT_BROWSER}
13+
${HEADLESS} = Get variable value ${HEADLESS} ${False}
14+
&{options} = create dictionary headless=${HEADLESS}
15+
Open browser https://www.blognone.com/ browser=${BROWSER} options=${options}
16+
&{cookies} = Get Cookies
17+
Should Not Be Empty ${cookies}[_gat]
18+
19+
Get cookie
20+
${BROWSER} = Get variable value ${BROWSER} ${DEFAULT_BROWSER}
21+
${HEADLESS} = Get variable value ${HEADLESS} ${False}
22+
&{options} = create dictionary headless=${HEADLESS}
23+
Open browser https://www.blognone.com/ browser=${BROWSER} options=${options}
24+
${cookie value} = Get Cookie _gat
25+
Should Not Be Empty ${cookie value}
26+
27+
Add cookie
28+
${BROWSER} = Get variable value ${BROWSER} ${DEFAULT_BROWSER}
29+
${HEADLESS} = Get variable value ${HEADLESS} ${False}
30+
&{options} = create dictionary headless=${HEADLESS}
31+
Open browser https://www.blognone.com/ browser=${BROWSER} options=${options}
32+
Add Cookie Test 1111
33+
&{cookies} = Get Cookies
34+
Should Be Equal As Strings 1111 ${cookies}[Test]
35+
1136
Delete all cookies
1237
${BROWSER} = Get variable value ${BROWSER} ${DEFAULT_BROWSER}
1338
${HEADLESS} = Get variable value ${HEADLESS} ${False}
1439
&{options} = create dictionary headless=${HEADLESS}
1540
Open browser http://127.0.0.1:7272/basic-html-elements.html browser=${BROWSER} options=${options}
1641
Delete All Cookies
42+
43+

PuppeteerLibrary/ikeywords/ibrowsermanagement_async.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,14 @@ def unselect_iframe(self):
4646
##############################
4747
# Cookies
4848
##############################
49+
async def get_cookie(self, name: str):
50+
pass
51+
52+
async def get_cookies(self):
53+
pass
54+
55+
async def add_cookie(self, name: str, value: str):
56+
pass
57+
4958
async def delete_all_cookies(self):
5059
pass

PuppeteerLibrary/keywords/browsermanagement.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,28 @@ def unselect_frame(self):
173173
##############################
174174
# Cookies
175175
##############################
176+
@keyword
177+
def get_cookie(self, name):
178+
""" Get cookie by name
179+
180+
Returns Cookie value
181+
"""
182+
return self.loop.run_until_complete(self.get_async_keyword_group().get_cookie(name))
183+
184+
@keyword
185+
def get_cookies(self):
186+
""" Get all cookies
187+
188+
Returns Dictionary for all cookies of the current page.
189+
"""
190+
return self.loop.run_until_complete(self.get_async_keyword_group().get_cookies())
191+
192+
@keyword
193+
def add_cookie(self, name, value):
194+
""" Add cookie
195+
"""
196+
return self.loop.run_until_complete(self.get_async_keyword_group().add_cookie(name, value))
197+
176198
@keyword
177199
def delete_all_cookies(self):
178200
""" Deletes all cookies.

PuppeteerLibrary/playwright/async_keywords/playwright_browsermanagement.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,5 +93,24 @@ def unselect_iframe(self):
9393
##############################
9494
# Cookies
9595
##############################
96+
async def get_cookie(self, name: str):
97+
cookies = await self.get_cookies()
98+
return cookies[name]
99+
100+
async def get_cookies(self):
101+
cookies = await self.library_ctx.get_browser_context().contexts[0].cookies()
102+
pairs = {}
103+
for cookie in cookies:
104+
pairs[cookie["name"]] = cookie["value"]
105+
return pairs
106+
107+
async def add_cookie(self, name: str, value: str):
108+
url = self.library_ctx.get_current_page().get_page().url
109+
await self.library_ctx.get_browser_context().contexts[0].addCookies([{
110+
'url': url,
111+
'name': name,
112+
'value': value
113+
}])
114+
96115
async def delete_all_cookies(self):
97116
await self.library_ctx.get_browser_context().contexts[0].clearCookies()

PuppeteerLibrary/puppeteer/async_keywords/puppeteer_browsermanagement.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,24 @@ def unselect_iframe(self):
105105
##############################
106106
# Cookies
107107
##############################
108+
async def get_cookie(self, name: str):
109+
cookies = await self.get_cookies()
110+
return cookies[name]
111+
112+
async def get_cookies(self):
113+
cookies = await self.library_ctx.get_current_page().get_page().cookies()
114+
pairs = {}
115+
for cookie in cookies:
116+
pairs[cookie["name"]] = cookie["value"]
117+
return pairs
118+
119+
async def add_cookie(self, name: str, value: str):
120+
await self.library_ctx.get_current_page().get_page().setCookie({
121+
'name': name,
122+
'value': value,
123+
})
124+
108125
async def delete_all_cookies(self):
109126
cookies = await self.library_ctx.get_current_page().get_page().cookies()
110127
for cookie in cookies:
111128
await self.library_ctx.get_current_page().get_page().deleteCookie(cookie)
112-

0 commit comments

Comments
 (0)