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.8.0.pre.40b06cf lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.8.0.pre.55b5378 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.8.0.pre.6989c7d lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.8.0.pre.603472b lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.f3cabd1 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.8.0 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.f368a23 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.c204367 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.0c19f86 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.7fc5a48 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.0345aa9 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.a4597d5 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.bef7d97 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.3fef592 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0.pre.5cb81f7 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.6.1.pre.efd9226 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.7.0 lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.6.1.pre.bb0471d lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.6.1.pre.74de72f lib/webdriver_script_adapter/exec_eval_script_adapter.rb
axe-core-api-4.6.1.pre.311e4da lib/webdriver_script_adapter/exec_eval_script_adapter.rb