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