Class: Watir::Cookies
- Inherits:
-
Object
- Object
- Watir::Cookies
- Includes:
- Enumerable
- Defined in:
- lib/watir-classic/cookies.rb
Overview
Returned by Browser#cookies.
Instance Method Summary collapse
-
#add(name, value, options = {}) ⇒ Object
Add a cookie.
-
#clear ⇒ Object
Delete all cookies for the page.
-
#delete(name) ⇒ Object
Delete a cookie.
-
#each {|cookie| ... } ⇒ Object
Iterate over each cookie.
-
#initialize(page_container) ⇒ Cookies
constructor
A new instance of Cookies.
Constructor Details
#initialize(page_container) ⇒ Cookies
Returns a new instance of Cookies.
8 9 10 |
# File 'lib/watir-classic/cookies.rb', line 8 def initialize(page_container) @page_container = page_container end |
Instance Method Details
#add(name, value, options = {}) ⇒ Object
Add a cookie.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/watir-classic/cookies.rb', line 42 def add(name, value, ={}) = .map do |option| k, v = option if k == :expires "#{k}=#{v.gmtime.strftime("%a, %d %b %Y %H:%M:%S UTC")}" elsif k == :secure "secure" if v else "#{k}=#{v}" end end.compact.join("; ") = "; #{}" unless .empty? @page_container.document. = "#{name}=#{value}#{}" end |
#clear ⇒ Object
Delete all cookies for the page.
101 102 103 |
# File 'lib/watir-classic/cookies.rb', line 101 def clear each {|| delete [:name]} end |
#delete(name) ⇒ Object
Note:
does not raise any exceptions when cookie with the specified name is not found.
Delete a cookie.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/watir-classic/cookies.rb', line 63 def delete(name) = {:expires => ::Time.now - 60 * 60 * 24} name, # make sure that the cookie gets deleted # there's got to be some easier way to do this uri = URI.parse(@page_container.url) domain = uri.host return unless domain paths = uri.path.split("/").reduce([]) do |paths, path| paths << "#{paths.last}/#{path}".squeeze("/") end << "/" subdomains = domain.split(".").reverse.reduce([]) do |subdomains, part| subdomain = "#{part}#{subdomains.last}" subdomain = "." + subdomain unless subdomain == domain subdomains << subdomain end subdomains.each do |subdomain| = .merge :domain => subdomain name, name, .merge(:secure => true) paths.each do |path| = .merge :path => path name, name, .merge(:secure => true) = .merge :path => path name, name, .merge(:secure => true) end end end |
#each {|cookie| ... } ⇒ Object
Iterate over each cookie.
21 22 23 24 25 26 |
# File 'lib/watir-classic/cookies.rb', line 21 def each @page_container.document..split(";").each do || name, value = .strip.split("=") yield({:name => name, :value => value}) end end |