readonly attribute isn't relevant on a number of input element types

This commit is contained in:
Thomas Walpole 2021-03-14 16:21:12 -07:00
parent 7efced6e73
commit 8cf636d3ee
3 changed files with 14 additions and 1 deletions

View File

@ -108,6 +108,13 @@ class Capybara::RackTest::Node < Capybara::Driver::Node
end
end
def readonly?
# readonly attribute not valid on these input types
return false if input_field? && %w[hidden range color checkbox radio file submit image reset button].include?(type)
super
end
def path
native.path
end

View File

@ -11,6 +11,12 @@ Capybara::SpecHelper.spec '#choose' do
expect(extract_results(@session)['gender']).to eq('male')
end
it 'ignores readonly attribute on radio buttons' do
@session.choose('gender_both')
@session.click_button('awesome')
expect(extract_results(@session)['gender']).to eq('both')
end
it 'should choose a radio button by label' do
@session.choose('Both')
@session.click_button('awesome')

View File

@ -170,7 +170,7 @@ New line after and before textarea tag
<label for="gender_male">Male</label>
<input type="radio" name="form[gender]" value="female" id="gender_female" checked="checked"/>
<label for="gender_female">Female</label>
<input type="radio" name="form[gender]" value="both" id="gender_both"/>
<input type="radio" name="form[gender]" value="both" id="gender_both" readonly="readonly"/>
<label for="gender_both">Both</label>
</p>