class Watir::Cookies
Public Class Methods
new(control)
click to toggle source
# File lib/watir-webdriver/cookies.rb, line 6 def initialize(control) @control = control end
Public Instance Methods
[](name)
click to toggle source
Returns a cookie by name.
@example
browser.cookies[:my_session] #=> {:name=>"my_session", :value=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk", :domain=>"mysite.com"}
@param [Symbol] name @return <Hash> or nil if not found
# File lib/watir-webdriver/cookies.rb, line 37 def [](name) to_a.find { |c| c[:name] == name.to_s } end
add(name, value, opts = {})
click to toggle source
Adds new cookie.
@example
browser.cookies.add 'my_session', 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk', secure: true
@param [String] name @param [String] value @param [Hash] opts @option opts [Boolean] :secure @option opts [String] :path @option opts [Time, DateTime, NilClass] :expires @option opts [String] :domain
# File lib/watir-webdriver/cookies.rb, line 56 def add(name, value, opts = {}) cookie = { name: name, value: value, secure: opts[:secure], path: opts[:path], expires: opts[:expires], domain: opts[:domain] } @control.add_cookie cookie end
clear()
click to toggle source
Deletes all cookies.
@example
browser.cookies.clear
# File lib/watir-webdriver/cookies.rb, line 89 def clear @control.delete_all_cookies end
delete(name)
click to toggle source
Deletes cookie by given name.
@example
browser.cookies.delete 'my_session'
@param [String] name
# File lib/watir-webdriver/cookies.rb, line 78 def delete(name) @control.delete_cookie(name) end
load(file = '.cookies')
click to toggle source
Load cookies from file
@example
browser.cookies.load '.cookies'
@param [String] file
# File lib/watir-webdriver/cookies.rb, line 115 def load(file = '.cookies') YAML.load(IO.read(file)).each do |c| add(c.delete(:name), c.delete(:value), c) end end
save(file = '.cookies')
click to toggle source
Save cookies to file
@example
browser.cookies.save '.cookies'
@param [String] file
# File lib/watir-webdriver/cookies.rb, line 102 def save(file = '.cookies') IO.write(file, to_a.to_yaml) end
to_a()
click to toggle source
Returns array of cookies.
@example
browser.cookies.to_a #=> {:name=>"my_session", :value=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk", :domain=>"mysite.com"}
@return [Array<Hash>]
# File lib/watir-webdriver/cookies.rb, line 20 def to_a @control.all_cookies.map do |e| e.merge(expires: e[:expires] ? to_time(e[:expires]) : nil) end end
Private Instance Methods
to_time(t)
click to toggle source
# File lib/watir-webdriver/cookies.rb, line 123 def to_time(t) if t.respond_to?(:to_time) t.to_time else ::Time.local t.year, t.month, t.day, t.hour, t.min, t.sec end end