Sha256: 8c64e5272f505d59ebbd6104c932c0f4f9a678cdf387c3ecb9a6e35caecc2293
Contents?: true
Size: 1.32 KB
Versions: 2
Compression:
Stored size: 1.32 KB
Contents
module Watir module WindowSwitching def windows(*args) wins = @driver.window_handles.map do |id| Window.new(@driver, id) end if args.empty? wins else filter_windows(args, wins, :select) end end def window(*args, &blk) win = filter_windows(args, windows, :find) if win && block_given? win.use(&blk) end win end private def filter_windows(args, wins, method) sel = extract_selector(args) unless sel.keys.all? { |k| [:title, :url].include? k } raise ArgumentError, "invalid window selector: #{sel}" end wins.send(method) do |win| sel.all? { |key, value| value === win.send(key) } end end end # WindowSwitching class Window def initialize(driver, id) @driver, @id = driver, id end def inspect '#<%s:0x%x id=%s>' % [self.class, hash*2, @id.to_s] end def current? @driver.window_handle == @id end def close use { @driver.close } end def title title = nil use { title = @driver.title } title end def url url = nil use { url = @driver.current_url } url end def use(&blk) @driver.switch_to.window(@id, &blk) self end end # Window end # Watir
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
watir-webdriver-0.0.9 | lib/watir-webdriver/window_switching.rb |
watir-webdriver-0.0.8 | lib/watir-webdriver/window_switching.rb |