@@ -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+
125163def 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