Class: Watir::Cookies

Inherits:
Object
  • Object
show all
Defined in:
lib/watir/cookies.rb

Instance Method Summary collapse

Constructor Details

#initialize(control) ⇒ Cookies

Returns a new instance of Cookies.


5
6
7
# File 'lib/watir/cookies.rb', line 5

def initialize(control)
  @control = control
end

Instance Method Details

#[](name) ⇒ Hash

Returns a cookie by name.

Examples:

browser.cookies[:my_session]#=> {:name=>"my_session", :value=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk", :domain=>"mysite.com"}

Parameters:

Returns:

  • (Hash)

    or nil if not found


36
37
38
# File 'lib/watir/cookies.rb', line 36

def [](name)
  to_a.find { |c| c[:name] == name.to_s }
end

#add(name, value, opts = {}) ⇒ Object

Adds new cookie.

Examples:

browser.cookies.add 'my_session', 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk', secure: true

Parameters:

  • name (String)
  • value (String)
  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :secure (Boolean)
  • :path (String)
  • :expires (Time, DateTime, NilClass)
  • :domain (String)

55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 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] = ::Time.parse(expires) if expires.is_a?(String) else expires
  end
  cookie[:domain] = opts[:domain] if opts.key?(:domain)

  @control.add_cookie cookie
end

#clearObject

Deletes all cookies.

Examples:

browser.cookies.clear

91
92
93
# File 'lib/watir/cookies.rb', line 91

def clear
  @control.delete_all_cookies
end

#delete(name) ⇒ Object

Deletes cookie by given name.

Examples:

browser.cookies.delete 'my_session'

Parameters:

  • name (String)

80
81
82
# File 'lib/watir/cookies.rb', line 80

def delete(name)
  @control.delete_cookie(name)
end

#load(file = '.cookies') ⇒ Object

Load cookies from file

Examples:

browser.cookies.load '.cookies'

Parameters:

  • file (String) (defaults to: '.cookies')

117
118
119
120
121
# File 'lib/watir/cookies.rb', line 117

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') ⇒ Object

Save cookies to file

Examples:

browser.cookies.save '.cookies'

Parameters:

  • file (String) (defaults to: '.cookies')

104
105
106
# File 'lib/watir/cookies.rb', line 104

def save(file = '.cookies')
  IO.write(file, to_a.to_yaml)
end

#to_aArray<Hash>

Returns array of cookies.

Examples:

browser.cookies.to_a#=> {:name=>"my_session", :value=>"BAh7B0kiD3Nlc3Npb25faWQGOgZFRkk", :domain=>"mysite.com"}

Returns:

  • (Array<Hash>)

19
20
21
22
23
# 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