diff --git a/lib/semantic_rails_view_helpers/capybara.rb b/lib/semantic_rails_view_helpers/capybara.rb index 2120cf4..3526179 100644 --- a/lib/semantic_rails_view_helpers/capybara.rb +++ b/lib/semantic_rails_view_helpers/capybara.rb @@ -106,11 +106,17 @@ def within_object(object, &block) end def object_matcher(object) - "[data-id='#{object.id}'][data-type='#{object.class}']" + if object.respond_to?(:id) + match = "[data-type='#{object.class}'][data-id='#{object.id}']" + elsif object.kind_of?(::Class) + match = "[data-type='#{object}']" + end + + match end def within_object_of_type(klass, &block) - within("[data-type='#{klass}']", &block) + within_object(klass, &block) end def within_any(search, &block)