File tree 4 files changed +45
-0
lines changed
spec/integration/selenium/webdriver
4 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -160,6 +160,26 @@ def property(name)
160
160
bridge . element_property self , name
161
161
end
162
162
163
+ #
164
+ # Gets the computed WAI-ARIA role of element
165
+ #
166
+ # @return [String]
167
+ #
168
+
169
+ def aria_role
170
+ bridge . element_aria_role self
171
+ end
172
+
173
+ #
174
+ # Gets the computed WAI-ARIA label of element.
175
+ #
176
+ # @return [String]
177
+ #
178
+
179
+ def accessible_name
180
+ bridge . element_aria_label self
181
+ end
182
+
163
183
#
164
184
# Get the text content of this element
165
185
#
Original file line number Diff line number Diff line change @@ -458,6 +458,14 @@ def element_property(element, name)
458
458
execute :get_element_property , id : element . ref , name : name
459
459
end
460
460
461
+ def element_aria_role ( element )
462
+ execute :get_element_aria_role , id : element . ref
463
+ end
464
+
465
+ def element_aria_label ( element )
466
+ execute :get_element_aria_label , id : element . ref
467
+ end
468
+
461
469
def element_value ( element )
462
470
element_property element , 'value'
463
471
end
Original file line number Diff line number Diff line change @@ -82,6 +82,8 @@ class Bridge
82
82
get_element_attribute : [ :get , 'session/:session_id/element/:id/attribute/:name' ] ,
83
83
get_element_property : [ :get , 'session/:session_id/element/:id/property/:name' ] ,
84
84
get_element_css_value : [ :get , 'session/:session_id/element/:id/css/:property_name' ] ,
85
+ get_element_aria_role : [ :get , 'session/:session_id/element/:id/computedrole' ] ,
86
+ get_element_aria_label : [ :get , 'session/:session_id/element/:id/computedlabel' ] ,
85
87
get_element_text : [ :get , 'session/:session_id/element/:id/text' ] ,
86
88
get_element_tag_name : [ :get , 'session/:session_id/element/:id/name' ] ,
87
89
get_element_rect : [ :get , 'session/:session_id/element/:id/rect' ] ,
Original file line number Diff line number Diff line change @@ -388,6 +388,21 @@ module WebDriver
388
388
end
389
389
end
390
390
391
+ it 'returns ARIA role' , only : { browser : %i[ chrome edge ] } do
392
+ driver . navigate . to "data:text/html," \
393
+ "<div role='heading' aria-level='1'>Level 1 Header</div>" \
394
+ "<h1>Level 1 Header</h1>" \
395
+ "<h2 role='alert'>Level 2 Header</h2>"
396
+ expect ( driver . find_element ( tag_name : 'div' ) . aria_role ) . to eq ( 'heading' )
397
+ expect ( driver . find_element ( tag_name : 'h1' ) . aria_role ) . to eq ( 'heading' )
398
+ expect ( driver . find_element ( tag_name : 'h2' ) . aria_role ) . to eq ( 'alert' )
399
+ end
400
+
401
+ it 'returns accessible name' , only : { browser : %i[ chrome edge ] } do
402
+ driver . navigate . to "data:text/html,<h1>Level 1 Header</h1>"
403
+ expect ( driver . find_element ( tag_name : 'h1' ) . accessible_name ) . to eq ( 'Level 1 Header' )
404
+ end
405
+
391
406
it 'should clear' do
392
407
driver . navigate . to url_for ( 'formPage.html' )
393
408
expect { driver . find_element ( id : 'withText' ) . clear } . not_to raise_error
You can’t perform that action at this time.
0 commit comments