Sha256: abc7d727cb85085e8a6a0528dcd8fe3617b313f83d5dd17537f0ea1c64de2dfc

Contents?: true

Size: 1.09 KB

Versions: 2

Compression:

Stored size: 1.09 KB

Contents

module Webdrone
  class Browser
    def ctxt
      @ctxt ||= Ctxt.new self
    end
  end

  class Ctxt
    attr_accessor :a0, :current_frame

    def initialize(a0)
      @a0 = a0
      @framestack = []
    end
    
    def create_tab
      @a0.exec.script "function a0_ctx_create_tab() { var w = window.open(); w.document.open(); w.document.write('A0 CTXT CREATE TAB'); w.document.close(); } a0_ctx_create_tab();"
      @a0.driver.switch_to.window @a0.driver.window_handles.last
    end
    
    def close_tab
      @a0.driver.close
      @a0.driver.switch_to.window @a0.driver.window_handles.last
    end

    def with_frame(name)
      @framestack << name      
      @a0.driver.switch_to.frame name
      if block_given?
        yield
        @framestack.pop
        @a0.driver.switch_to.default_content
        @framestack.each { |frame| @a0.driver.switch_to.frame frame}
      end
      name
    end
    
    def with_alert
      @a0.wait.for do
        yield @a0.driver.switch_to.alert
      end
    end

    def ignore_alert
      @a0.exec.script 'alert = function(message){return true;};'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webdrone-0.6.0 lib/webdrone/ctxt.rb
webdrone-0.5.0 lib/webdrone/ctxt.rb