Class: Selenium::WebDriver::Manager

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/webdriver/common/manager.rb

Direct Known Subclasses

W3CManager

Instance Method Summary collapse

Constructor Details

#initialize(bridge) ⇒ Manager

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Manager.



27
28
29
# File 'lib/selenium/webdriver/common/manager.rb', line 27

def initialize(bridge)
  @bridge = bridge
end

Instance Method Details

Add a cookie to the browser

Parameters:

  • opts (Hash) (defaults to: {})

    the options to create a cookie with.

Options Hash (opts):

  • :name (String)

    A name

  • :value (String)

    A value

  • :path (String) — default: '/'

    A path

  • :secure (String) — default: false

    A boolean

  • :expires (Time, DateTime, Numeric, nil) — default: nil

    Expiry date, either as a Time, DateTime, or seconds since epoch.

Raises:

  • (ArgumentError)

    if :name or :value is not specified



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/selenium/webdriver/common/manager.rb', line 44

def add_cookie(opts = {})
  raise ArgumentError, 'name is required' unless opts[:name]
  raise ArgumentError, 'value is required' unless opts[:value]

  opts[:path] ||= '/'
  opts[:secure] ||= false

  obj = opts.delete(:expires)
  opts[:expiry] = seconds_from(obj).to_i if obj

  @bridge.add_cookie opts
end

#all_cookiesArray<Hash>

Get all cookies

Returns:

  • (Array<Hash>)

    list of cookies



92
93
94
# File 'lib/selenium/webdriver/common/manager.rb', line 92

def all_cookies
  @bridge.cookies.map { |cookie| convert_cookie(cookie) }
end

Get the cookie with the given name

Parameters:

  • name (String)

    the name of the cookie

Returns:

  • (Hash, nil)

    the cookie, or nil if it wasn’t found.



64
65
66
# File 'lib/selenium/webdriver/common/manager.rb', line 64

def cookie_named(name)
  all_cookies.find { |c| c[:name] == name }
end

#delete_all_cookiesObject

Delete all cookies



82
83
84
# File 'lib/selenium/webdriver/common/manager.rb', line 82

def delete_all_cookies
  @bridge.delete_all_cookies
end

Delete the cookie with the given name

Parameters:

  • name (String)

    the name of the cookie to delete



74
75
76
# File 'lib/selenium/webdriver/common/manager.rb', line 74

def delete_cookie(name)
  @bridge.delete_cookie name
end

#logsObject



104
105
106
# File 'lib/selenium/webdriver/common/manager.rb', line 104

def logs
  @logs ||= Logs.new(@bridge)
end

#new_window(type = :tab) ⇒ String

Create a new top-level browsing context w3c.github.io/webdriver/#new-window

Parameters:

  • type (Symbol) (defaults to: :tab)

    Supports two values: :tab and :window. Use :tab if you’d like the new window to share an OS-level window with the current browsing context. Use :window otherwise

Returns:

  • (String)

    The value of the window handle



117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/selenium/webdriver/common/manager.rb', line 117

def new_window(type = :tab)
  case type
  when :tab, :window
    result = @bridge.new_window(type)
    unless result.key?('handle')
      raise UnknownError, "the driver did not return a handle. " \
                          "The returned result: #{result.inspect}"
    end
    result['handle']
  else
    raise ArgumentError, "invalid argument for type. Got: '#{type.inspect}'. " \
                         "Try :tab or :window"
  end
end

#timeoutsObject



96
97
98
# File 'lib/selenium/webdriver/common/manager.rb', line 96

def timeouts
  @timeouts ||= Timeouts.new(@bridge)
end

#windowObject



136
137
138
# File 'lib/selenium/webdriver/common/manager.rb', line 136

def window
  @window ||= Window.new(@bridge)
end