Sha256: af6d498f10102ce59acb73c30826650cc350bc21d7dc17e7da2dfff6600688c7

Contents?: true

Size: 1.19 KB

Versions: 121

Compression:

Stored size: 1.19 KB

Contents

require 'dumb_delegator'

module WebDriverScriptAdapter
  # Capybara distinguishes eval from exec
  # (eval is a query, exec is a command)
  # this decorator makes webdriver act like capybara
  class ExecEvalScriptAdapter < ::DumbDelegator
    def self.wrap(driver)
      raise WebDriverError, "WebDriver must respond to #execute_script" unless driver.respond_to? :execute_script

      driver.respond_to?(:evaluate_script) ? ExecEvalScriptAdapter2.new(driver) : new(driver)
    end

    # executes script without returning result
    def execute_script(script)
      super
      nil
    end

    # returns result of executing script
    def evaluate_script(script)
      __getobj__.execute_script "return #{script}"
    end

    def execute_script_fixed(script, *args)
      page = __getobj__
      page.execute_script(script, *args)
    end
  end
  class ExecEvalScriptAdapter2 < ::DumbDelegator
    def execute_script_fixed(script, *args)
      page = __getobj__
      page = page.driver if page.respond_to?("driver")
      page = page.browser if page.respond_to?("browser") and not page.browser.is_a?(::Symbol)
      page.execute_script(script, *args)
    end
  end

  class WebDriverError < TypeError; end
end

Version data entries

121 entries across 121 versions & 1 rubygems

Version Path
axe-core-api-4.4.0 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.2.pre.9952248 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.2.pre.17fb7c9 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.2.pre.2e32f26 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.2.pre.dc71aca lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.2 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.1.pre.75130b0 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.1.pre.8005df2 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.1 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.0.pre.a04c46c lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.0.pre.99d4475 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.0.pre.5d6d4c3 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.0.pre.4296492 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.3.0 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.1.pre.ea3a33f lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.1.pre.d87a85a lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.1.pre.1329c45 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.0.pre.33afee3 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.0.pre.4575cbd lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.2.0.pre.6beb600 lib/webdriver_script_adapter/exec_eval_script_adapter.rb