lib/capybara/selector/definition/label.rb in capybara-3.29.0 vs lib/capybara/selector/definition/label.rb in capybara-3.30.0
- old
+ new
@@ -8,10 +8,12 @@
locator_matchers = XPath.string.n.is(locator.to_s) | (XPath.attr(:id) == locator.to_s)
locator_matchers |= XPath.attr(test_id) == locator if test_id
xpath = xpath[locator_matchers]
end
if options.key?(:for)
- if (for_option = options[:for].is_a?(Capybara::Node::Element) ? options[:for][:id] : options[:for])
+ for_option = options[:for]
+ for_option = for_option[:id] if for_option.is_a?(Capybara::Node::Element)
+ if for_option && (for_option != '')
with_attr = builder(XPath.self).add_attribute_conditions(for: for_option)
wrapped = !XPath.attr(:for) &
builder(XPath.self.descendant(*labelable_elements)).add_attribute_conditions(id: for_option)
xpath = xpath[with_attr | wrapped]
end