module Watir::HasWindow

Public Instance Methods

window(*args, &blk) click to toggle source

Returns browser window.

@example

browser.window(title: 'closeable window')

@return [Window]

# File lib/watir-webdriver/has_window.rb, line 32
def window(*args, &blk)
  win = Window.new @driver, extract_selector(args)

  win.use(&blk) if block_given?

  win
end
windows(*args) click to toggle source

Returns browser windows array.

@example

browser.windows(title: 'closeable window')

@return [Array<Window>]

# File lib/watir-webdriver/has_window.rb, line 13
def windows(*args)
  all = @driver.window_handles.map { |handle| Window.new(@driver, handle: handle) }

  if args.empty?
    all
  else
    filter_windows extract_selector(args), all
  end
end

Private Instance Methods

filter_windows(selector, windows) click to toggle source
# File lib/watir-webdriver/has_window.rb, line 42
def filter_windows(selector, windows)
  unless selector.keys.all? { |k| [:title, :url].include? k }
    raise ArgumentError, "invalid window selector: #{selector.inspect}"
  end

  windows.select do |win|
    selector.all? { |key, value| value === win.send(key) }
  end
end