Sha256: 0e8e220225bd4e68f20cf132bb0e784dbded577e61837d722ae5be746603a560

Contents?: true

Size: 684 Bytes

Versions: 9

Compression:

Stored size: 684 Bytes

Contents

module ToleranceForSeleniumSyncIssues
  # This is similiar but not entirely the same as Capybara::Node::Base#wait_until or Capybara::Session#wait_until
  def patiently(seconds=Capybara.default_wait_time, &block)
    if page.driver.wait?
      start_time = Time.now
      begin
        block.call
      rescue => e
        raise e if (Time.now - start_time) >= seconds
        sleep(0.05)
        raise Capybara::FrozenInTime, "time appears to be frozen, Capybara does not work with libraries which freeze time, consider using time travelling instead" if Time.now == start_time
        retry
      end
    else
      block.call
    end
  end
end

World(ToleranceForSeleniumSyncIssues)

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spreewald-0.1.4 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.1.3 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.1.2 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.1.1 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.1.0 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.0.4 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.0.3 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.0.2 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb
spreewald-0.0.1 lib/spreewald_support/tolerance_for_selenium_sync_issues.rb