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

26 lines
796 B
Ruby

# frozen_string_literal: true
Capybara.add_selector(:datalist_option, locator_type: [String, Symbol]) do
label 'datalist option'
visible(:all)
xpath do |locator|
xpath = XPath.descendant(:option)
xpath = xpath[XPath.string.n.is(locator.to_s) | (XPath.attr(:value) == locator.to_s)] unless locator.nil?
xpath
end
node_filter(:disabled, :boolean) { |node, value| !(value ^ node.disabled?) }
expression_filter(:disabled) { |xpath, val| val ? xpath : xpath[~XPath.attr(:disabled)] }
describe_expression_filters do |disabled: nil, **options|
desc = +''
desc << ' that is not disabled' if disabled == false
desc << describe_all_expression_filters(**options)
end
describe_node_filters do |**options|
' that is disabled' if options[:disabled]
end
end