Sha256: 2d156782bbaa2c8d927a46807c85b484da92a6b3bc07f1b59cfbe01c54f79d01

Contents?: true

Size: 698 Bytes

Versions: 2

Compression:

Stored size: 698 Bytes

Contents

module CapybaraPatched
  class Capybara::Selenium::PatchedDriver < Capybara::Selenium::Driver
    RETRY_ON = [
        ::Selenium::WebDriver::Error::UnhandledError,
        ::Selenium::WebDriver::Error::UnknownError,
        ::Selenium::WebDriver::Error::InvalidSelectorError
    ]

    # workaround for transferring correct arguments via call stack
    Capybara::Session.instance_eval do
      self::NODE_METHODS.each do |method|
        class_eval <<-RUBY
        def #{method}(*args, &block)
          retryable(tries:3, logger: log, trace: true, on: RETRY_ON) do
            current_node.send(:#{method}, *args.flatten, &block)
          end
        end
        RUBY
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
howitzer-0.0.3 lib/howitzer/utils/capybara_patched.rb
howitzer-0.0.1 lib/howitzer/utils/capybara_patched.rb