Module: Cornucopia::Capybara::MatcherExtensions

Included in:
Capybara::Node::Document, Capybara::Node::Element
Defined in:
lib/cornucopia/capybara/matcher_extensions.rb

Instance Method Summary collapse

Instance Method Details

#__cornucopia_assert_selector_function(assert_selector_function, *args) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 36

def __cornucopia_assert_selector_function(assert_selector_function, *args)
  retry_count = 0
  result      = nil

  unless [:has_selector?, :has_no_selector?].include?(assert_selector_function)
    support_options = __cornucopia__extract_selector_support_options(*args)
  end

  begin
    retry_count += 1
    result      = send("__cornucopia_orig_#{assert_selector_function}", *args)
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    retry if __cornucopia__retry_selector(retry_count, support_options)

    result = __cornucopia__analyze_selector(assert_selector_function, support_options, *args)
  rescue Exception
    result = __cornucopia__analyze_selector(assert_selector_function, support_options, *args)
  end

  result
end

#assert_no_selector(*args) ⇒ Object



11
12
13
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 11

def assert_no_selector(*args)
  __cornucopia_assert_selector_function(:assert_no_selector, *args)
end

#assert_selector(*args) ⇒ Object



7
8
9
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 7

def assert_selector(*args)
  __cornucopia_assert_selector_function(:assert_selector, *args)
end

#has_no_selector?(*args) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
31
32
33
34
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 26

def has_no_selector?(*args)
  new_args = args.dup
  options  = (new_args.pop if new_args.length > 1 && new_args[-1].is_a?(Hash)) || {}

  if Cornucopia::Util::Configuration.ignore_has_selector_errors
    options = { __cornucopia_no_analysis: true }.merge options
  end
  __cornucopia_assert_selector_function(:has_no_selector?, *new_args, options)
end

#has_selector?(*args) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 15

def has_selector?(*args)
  new_args = args.dup
  options  = (new_args.pop if new_args.length > 1 && new_args[-1].is_a?(Hash)) || {}

  if Cornucopia::Util::Configuration.ignore_has_selector_errors
    options = { __cornucopia_no_analysis: true }.merge options
  end

  __cornucopia_assert_selector_function(:has_selector?, *new_args, options)
end