teamcapybara--capybara/lib/capybara/selector/definition/frame.rb

18 lines
573 B
Ruby

# frozen_string_literal: true
Capybara.add_selector(:frame, locator_type: [String, Symbol]) do
xpath do |locator, name: nil, **|
xpath = XPath.descendant(:iframe).union(XPath.descendant(:frame))
unless locator.nil?
locator_matchers = (XPath.attr(:id) == locator.to_s) | (XPath.attr(:name) == locator.to_s)
locator_matchers |= XPath.attr(test_id) == locator if test_id
xpath = xpath[locator_matchers]
end
xpath[find_by_attr(:name, name)]
end
describe_expression_filters do |name: nil, **|
" with name #{name}" if name
end
end