Only split CSS if :class or :id are specified - Fixes Issue #2044 to 3.1.1 level for now

This commit is contained in:
Thomas Walpole 2018-06-04 08:17:30 -07:00
parent 25b942324d
commit 979b07b771
2 changed files with 9 additions and 7 deletions

View File

@ -225,12 +225,14 @@ module Capybara
raise ArgumentError, "XPath expressions are not supported for the :class filter with CSS based selectors"
end
css_selectors = expr.split(',').map(&:rstrip)
expr = css_selectors.map do |sel|
sel += "##{Capybara::Selector::CSS.escape(options[:id])}" if process_id
sel += css_from_classes(Array(options[:class])) if process_class
sel
end.join(", ")
if process_class || process_id
css_selectors = expr.split(',').map(&:rstrip)
expr = css_selectors.map do |sel|
sel += "##{Capybara::Selector::CSS.escape(options[:id])}" if process_id
sel += css_from_classes(Array(options[:class])) if process_class
sel
end.join(", ")
end
expr
end

View File

@ -273,7 +273,7 @@ RSpec.shared_examples "Capybara::Session" do |session, mode|
expect(@animation_session).to have_no_link('transition me away', wait: 0.5)
end
it "should disable CSS animations", :focus_ do
it "should disable CSS animations" do
@animation_session.visit('with_animation')
@animation_session.click_link('animate me away')
expect(@animation_session).to have_no_link('animate me away', wait: 0.5)