@@ -6,7 +6,6 @@ class Capybara::RackTest::Node < Capybara::Driver::Node
6
6
BLOCK_ELEMENTS = %w[ p h1 h2 h3 h4 h5 h6 ol ul pre address blockquote dl div fieldset form hr noscript table ] . freeze
7
7
8
8
def all_text
9
- stale_check
10
9
native . text
11
10
. gsub ( /[\u200b \u200e \u200f ]/ , '' )
12
11
. gsub ( /[\ \n \f \t \v \u2028 \u2029 ]+/ , ' ' )
@@ -16,7 +15,6 @@ def all_text
16
15
end
17
16
18
17
def visible_text
19
- stale_check
20
18
displayed_text . gsub ( /\ +/ , ' ' )
21
19
. gsub ( /[\ \n ]*\n [\ \n ]*/ , "\n " )
22
20
. gsub ( /\A [[:space:]&&[^\u00a0 ]]+/ , '' )
@@ -25,7 +23,6 @@ def visible_text
25
23
end
26
24
27
25
def []( name )
28
- stale_check
29
26
string_node [ name ]
30
27
end
31
28
@@ -34,12 +31,10 @@ def style(_styles)
34
31
end
35
32
36
33
def value
37
- stale_check
38
34
string_node . value
39
35
end
40
36
41
37
def set ( value , **options )
42
- stale_check
43
38
return if disabled? || readonly?
44
39
45
40
warn "Options passed to Node#set but the RackTest driver doesn't support any - ignoring" unless options . empty?
@@ -56,15 +51,13 @@ def set(value, **options)
56
51
end
57
52
58
53
def select_option
59
- stale_check
60
54
return if disabled?
61
55
62
56
deselect_options unless select_node . multiple?
63
57
native [ 'selected' ] = 'selected'
64
58
end
65
59
66
60
def unselect_option
67
- stale_check
68
61
raise Capybara ::UnselectNotAllowed , 'Cannot unselect option from single select box.' unless select_node . multiple?
69
62
70
63
native . remove_attribute ( 'selected' )
@@ -73,8 +66,6 @@ def unselect_option
73
66
def click ( keys = [ ] , **offset )
74
67
raise ArgumentError , 'The RackTest driver does not support click options' unless keys . empty? && offset . empty?
75
68
76
- stale_check
77
-
78
69
if link?
79
70
follow_link
80
71
elsif submits?
@@ -88,27 +79,22 @@ def click(keys = [], **offset)
88
79
end
89
80
90
81
def tag_name
91
- stale_check
92
82
native . node_name
93
83
end
94
84
95
85
def visible?
96
- stale_check
97
86
string_node . visible?
98
87
end
99
88
100
89
def checked?
101
- stale_check
102
90
string_node . checked?
103
91
end
104
92
105
93
def selected?
106
- stale_check
107
94
string_node . selected?
108
95
end
109
96
110
97
def disabled?
111
- stale_check
112
98
return true if string_node . disabled?
113
99
114
100
if %w[ option optgroup ] . include? tag_name
@@ -122,20 +108,27 @@ def path
122
108
native . path
123
109
end
124
110
125
- def find_xpath ( locator )
126
- stale_check
111
+ def find_xpath ( locator , **_hints )
127
112
native . xpath ( locator ) . map { |el | self . class . new ( driver , el ) }
128
113
end
129
114
130
- def find_css ( locator )
131
- stale_check
115
+ def find_css ( locator , **_hints )
132
116
native . css ( locator , Capybara ::RackTest ::CSSHandlers . new ) . map { |el | self . class . new ( driver , el ) }
133
117
end
134
118
119
+ self . public_instance_methods ( false ) . each do |meth_name |
120
+ alias_method "unchecked_#{ meth_name } " , meth_name
121
+ private "unchecked_#{ meth_name } "
122
+ define_method meth_name do |*args |
123
+ stale_check
124
+ send ( "unchecked_#{ meth_name } " , *args )
125
+ end
126
+ end
127
+
135
128
def ==( other )
136
129
native == other . native
137
130
end
138
-
131
+
139
132
protected
140
133
141
134
# @api private
0 commit comments