class Watir::Cookies
Public Class Methods
new(control)
click to toggle source
# File lib/watir/cookies.rb, line 5 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/cookies.rb, line 36 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/cookies.rb, line 55 def add(name, value, opts = {}) cookie = { name: name, value: value } cookie[:secure] = opts[:secure] if opts.key?(:secure) cookie[:path] = opts[:path] if opts.key?(:path) expires = opts[:expires] if expires cookie[:expires] = expires.is_a?(String) ? ::Time.parse(expires) : expires end cookie[:domain] = opts[:domain] if opts.key?(:domain) @control.add_cookie cookie end
clear()
click to toggle source
Deletes all cookies.
@example
browser.cookies.clear
# File lib/watir/cookies.rb, line 91 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/cookies.rb, line 80 def delete(name) @control.delete_cookie(name) end
load(file = '.cookies')
click to toggle source
TODO: Use
:permitted_classes keyword when minimum supported Ruby is 2.6
Load cookies from file
@example
browser.cookies.load '.cookies'
@param [String] file
# File lib/watir/cookies.rb, line 119 def load(file = '.cookies') YAML.safe_load(IO.read(file), [::Symbol, ::Time]).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/cookies.rb, line 104 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/cookies.rb, line 19 def to_a @control.all_cookies.map do |e| e.merge(expires: e[:expires] ? e[:expires].to_time : nil) end end