Skip to content

Commit 813b3a2

Browse files
author
ravishankar
committed
[#32] cookies added into driver
1 parent 33f9c03 commit 813b3a2

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

s_tool/driver.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
hide_show_elements,
1717
is_element,
1818
page_source,
19+
set_cookies,
1920
take_screenshot,
2021
visit,
2122
)
@@ -94,6 +95,7 @@ def _load_methods(self):
9495
self.hide = partial(hide_show_elements, self.driver)
9596
self.fill = partial(fill, self.driver)
9697
self.is_element = partial(is_element, self.driver)
98+
self.set_cookies = partial(set_cookies, self.driver)
9799

98100

99101
if __name__ == "__main__":

s_tool/utils.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,44 @@ def get_cookies(driver: webdriver) -> dict:
122122
return cookies_dict or {}
123123

124124

125+
def set_cookies(
126+
driver: webdriver,
127+
drop_all: bool = False,
128+
drop_keys: set = set(),
129+
**cookies,
130+
) -> None:
131+
"""Set cookies into webdriver instance
132+
133+
Args:
134+
driver : selenium webdriver.
135+
drop_all : default False, set it to True to delete all cookies.
136+
drop_keys : a set of cookie keys to delete from the browser.
137+
**cookies : variable length of cookies.
138+
139+
Returns:
140+
None
141+
142+
Usage:
143+
set_cookies(driver,name="s-tool",version=1)
144+
set_cookies(driver,drop_all=True,name="s-tool",version=1)
145+
set_cookies(driver,**{'name':"s-tool","version":1}
146+
"""
147+
# cookies name and value must be in string
148+
cookies = {str(k): str(v) for k, v in cookies.items()}
149+
150+
# Delete all cookies
151+
if drop_all:
152+
driver.delete_all_cookies()
153+
154+
# Delete only given cookies Name
155+
for name in drop_keys:
156+
driver.delete_cookie(name)
157+
158+
# Add new cookies
159+
for name, value in cookies.items():
160+
driver.add_cookie({"name": name, "value": value})
161+
162+
125163
def take_screenshot(driver: webdriver, element: tuple = None) -> Union[bytes, None]:
126164
"""take screenshot of given element if element is
127165
not given take a full page screeenshot and return

0 commit comments

Comments
 (0)