teamcapybara--capybara/lib/capybara/driver/node.rb

115 lines
2.2 KiB
Ruby

# frozen_string_literal: true
module Capybara
module Driver
class Node
attr_reader :driver, :native
def initialize(driver, native)
@driver = driver
@native = native
end
def all_text
raise NotImplementedError
end
def visible_text
raise NotImplementedError
end
def [](name)
raise NotImplementedError
end
def value
raise NotImplementedError
end
# @param value String or Array. Array is only allowed if node has 'multiple' attribute
# @param options [Hash{}] Driver specific options for how to set a value on a node
def set(value, **options)
raise NotImplementedError
end
def select_option
raise NotImplementedError
end
def unselect_option
raise NotImplementedError
end
def click(keys = [], options = {})
raise NotImplementedError
end
def right_click(keys = [], options = {})
raise NotImplementedError
end
def double_click(keys = [], options = {})
raise NotImplementedError
end
def send_keys(*args)
raise NotImplementedError
end
def hover
raise NotImplementedError
end
def drag_to(element)
raise NotImplementedError
end
def tag_name
raise NotImplementedError
end
def visible?
raise NotImplementedError
end
def checked?
raise NotImplementedError
end
def selected?
raise NotImplementedError
end
def disabled?
raise NotImplementedError
end
def readonly?
!!self[:readonly]
end
def multiple?
!!self[:multiple]
end
def path
raise NotSupportedByDriverError, 'Capybara::Driver::Node#path'
end
def trigger(event)
raise NotSupportedByDriverError, 'Capybara::Driver::Node#trigger'
end
def inspect
%(#<#{self.class} tag="#{tag_name}" path="#{path}">)
rescue NotSupportedByDriverError
%(#<#{self.class} tag="#{tag_name}">)
end
def ==(other)
raise NotSupportedByDriverError, 'Capybara::Driver::Node#=='
end
end
end
end