Class: Watir::Cookies

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

Instance Method Summary collapse

Constructor Details

#initialize(control) ⇒ Cookies

Returns a new instance of Cookies.


6
7
8
# File 'lib/watir-webdriver/cookies.rb', line 6

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


37
38
39
# File 'lib/watir-webdriver/cookies.rb', line 37

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)

56
57
58
59
60
61
62
63
64
65
66
67
# 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

#clearObject

Deletes all cookies.

Examples:

browser.cookies.clear

89
90
91
# File 'lib/watir-webdriver/cookies.rb', line 89

def clear
  @control.delete_all_cookies
end

#delete(name) ⇒ Object

Deletes cookie by given name.

Examples:

browser.cookies.delete 'my_session'

Parameters:

  • name (String)

78
79
80
# File 'lib/watir-webdriver/cookies.rb', line 78

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

115
116
117
118
119
# 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') ⇒ Object

Save cookies to file

Examples:

browser.cookies.save '.cookies'

Parameters:

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

102
103
104
# File 'lib/watir-webdriver/cookies.rb', line 102

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>)

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