Module: Cornucopia::Capybara::MatcherExtensions

Extended by:
ActiveSupport::Concern
Defined in:
lib/cornucopia/capybara/matcher_extensions.rb

Instance Method Summary collapse

Instance Method Details

#assert_no_selector(*args, &block) ⇒ Object



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

def assert_no_selector(*args, &block)
  retry_count    = 0
  result         = nil
  no_option_args = args.clone
  options        = no_option_args.pop if no_option_args.last.is_a?(Hash)
  options        ||= {}

  support_options, normal_options = __cornucopia__extract_selector_support_options(**options)

  begin
    retry_count += 1
    if __cornucopia__call_super?(:assert_no_selector, *no_option_args, **normal_options, &block)
      result = super(*no_option_args, **normal_options, &block)
    end
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    retry if __cornucopia__retry_selector?(retry_count, support_options)

    result = __cornucopia__analyze_selector(:assert_no_selector, support_options, *no_option_args, **normal_options)
  rescue
    result = __cornucopia__analyze_selector(:assert_no_selector, support_options, *no_option_args, **normal_options)
  end

  result
end

#assert_selector(*args, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 13

def assert_selector(*args, &block)
  retry_count    = 0
  result         = nil
  no_option_args = args.clone
  options        = no_option_args.pop if no_option_args.last.is_a?(Hash)
  options        ||= {}

  support_options, normal_options = __cornucopia__extract_selector_support_options(**options)

  begin
    retry_count += 1
    if __cornucopia__call_super?(:assert_selector, *no_option_args, **normal_options, &block)
      result = super(*no_option_args, normal_options, &block)
    end
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    retry if __cornucopia__retry_selector?(retry_count, support_options)

    result = __cornucopia__analyze_selector(:assert_selector, support_options, *no_option_args, **normal_options)
  rescue
    result = __cornucopia__analyze_selector(:assert_selector, support_options, *no_option_args, **normal_options)
  end

  result
end

#has_no_selector?(*args, **options, &block) ⇒ Boolean

Returns:

  • (Boolean)


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 92

def has_no_selector?(*args, **options, &block)
  new_args    = args.dup
  retry_count = 0
  result      = nil

  support_options, normal_options = __cornucopia__extract_selector_support_options(**options)

  begin
    retry_count += 1
    if __cornucopia__call_super?(:has_no_selector?, *new_args, **options, &block)
      __cornucopia_with_no_analysis do
        result = super(*new_args, **options, &block)

        unless Cornucopia::Util::Configuration.ignore_has_selector_errors
          result ||= __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
        end
      end
    end
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    retry if __cornucopia__retry_selector?(retry_count, support_options)

    result = __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
  rescue
    result = __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
  end

  result
end

#has_selector?(*args, **options, &block) ⇒ Boolean

Returns:

  • (Boolean)


63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/cornucopia/capybara/matcher_extensions.rb', line 63

def has_selector?(*args, **options, &block)
  new_args    = args.dup
  retry_count = 0
  result      = nil

  support_options, normal_options = __cornucopia__extract_selector_support_options(**options)

  begin
    retry_count += 1
    if __cornucopia__call_super?(:has_selector?, *new_args, **options, &block)
      __cornucopia_with_no_analysis do
        result = super(*new_args, **options, &block)

        unless Cornucopia::Util::Configuration.ignore_has_selector_errors
          result ||= __cornucopia__analyze_selector(:has_no_selector?, support_options, *new_args, **normal_options)
        end
      end
    end
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
    retry if __cornucopia__retry_selector?(retry_count, support_options)

    result = __cornucopia__analyze_selector(:has_selector?, support_options, *new_args, **normal_options)
  rescue
    result = __cornucopia__analyze_selector(:has_selector?, support_options, *new_args, **normal_options)
  end

  result
end