Robot Framework SeleniumLibrary
cookie.py
Go to the documentation of this file.
1 # Copyright 2008-2011 Nokia Networks
2 # Copyright 2011-2016 Ryan Tomac, Ed Manlove and contributors
3 # Copyright 2016- Robot Framework Foundation
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 
17 from datetime import datetime
18 
19 from robot.libraries.DateTime import convert_date
20 from robot.utils import DotDict
21 
22 from SeleniumLibrary.base import LibraryComponent, keyword
23 from SeleniumLibrary.errors import CookieNotFound
24 from SeleniumLibrary.utils import is_truthy, is_noney, is_falsy
25 
26 
28 
29  @keyword
30 
31  def delete_all_cookies(self):
32  self.driverdriverdriver.delete_all_cookies()
33 
34  @keyword
35 
39  def delete_cookie(self, name):
40  self.driverdriverdriver.delete_cookie(name)
41 
42  @keyword
43 
57  def get_cookies(self, as_dict=False):
58  if is_falsy(as_dict):
59  pairs = []
60  for cookie in self.driverdriverdriver.get_cookies():
61  pairs.append(cookie['name'] + "=" + cookie['value'])
62  return '; '.join(pairs)
63  else:
64  pairs = DotDict()
65  for cookie in self.driverdriverdriver.get_cookies():
66  pairs[cookie['name']] = cookie['value']
67  return pairs
68 
69  @keyword
70 
109  def get_cookie(self, name):
110  cookie = self.driverdriverdriver.get_cookie(name)
111  if not cookie:
112  raise CookieNotFound("Cookie with name '%s' not found." % name)
113  return CookieInformation(**cookie)
114 
115  @keyword
116 
131  def add_cookie(self, name, value, path=None, domain=None, secure=None,
132  expiry=None):
133  new_cookie = {'name': name, 'value': value}
134  if not is_noney(path):
135  new_cookie['path'] = path
136  if not is_noney(domain):
137  new_cookie['domain'] = domain
138  # Secure must be True or False
139  if not is_noney(secure):
140  new_cookie['secure'] = is_truthy(secure)
141  if not is_noney(expiry):
142  new_cookie['expiry'] = self._expiry_expiry(expiry)
143  self.driverdriverdriver.add_cookie(new_cookie)
144 
145  def _expiry(self, expiry):
146  try:
147  return int(expiry)
148  except ValueError:
149  return int(convert_date(expiry, result_format='epoch'))
150 
151 
153 
154  def __init__(self, name, value, path=None, domain=None, secure=False,
155  httpOnly=False, expiry=None, **extra):
156  self.namename = name
157  self.valuevalue = value
158  self.pathpath = path
159  self.domaindomain = domain
160  self.securesecure = secure
161  self.httpOnlyhttpOnly = httpOnly
162  self.expiryexpiry = datetime.fromtimestamp(expiry) if expiry else None
163  self.extraextra = extra
164 
165  def __str__(self):
166  items = 'name value path domain secure httpOnly expiry'.split()
167  string = '\n'.join('%s=%s' % (item, getattr(self, item))
168  for item in items)
169  if self.extraextra:
170  string = '%s\n%s=%s\n' % (string, 'extra', self.extraextra)
171  return string
def __init__(self, name, value, path=None, domain=None, secure=False, httpOnly=False, expiry=None, **extra)
Definition: cookie.py:155
def get_cookies(self, as_dict=False)
Returns all cookies of the current page.
Definition: cookie.py:57
def add_cookie(self, name, value, path=None, domain=None, secure=None, expiry=None)
Adds a cookie to your current session.
Definition: cookie.py:132
def delete_all_cookies(self)
Deletes all cookies.
Definition: cookie.py:31
def get_cookie(self, name)
Returns information of cookie with name as an object.
Definition: cookie.py:109
def delete_cookie(self, name)
Deletes cookie matching name.
Definition: cookie.py:39