1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
# frozen_string_literal: true
module Capybara
module Driver
class Node
attr_reader :driver, :native, :initial_cache
def initialize(driver, native, initial_cache = {})
@driver = driver
@native = native
@initial_cache = initial_cache
end
def all_text
raise NotImplementedError
end
def visible_text
raise NotImplementedError
end
def [](name)
raise NotImplementedError
end
def value
raise NotImplementedError
end
def style(styles)
raise NotImplementedError
end
# @param value [String, 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, **options)
raise NotImplementedError
end
def drop(*args)
raise NotImplementedError
end
def scroll_by(x, y)
raise NotImplementedError
end
def scroll_to(element, alignment, position = nil)
raise NotImplementedError
end
def tag_name
raise NotImplementedError
end
def visible?
raise NotImplementedError
end
def obscured?
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 rect
raise NotSupportedByDriverError, 'Capybara::Driver::Node#rect'
end
def path
raise NotSupportedByDriverError, 'Capybara::Driver::Node#path'
end
def trigger(event)
raise NotSupportedByDriverError, 'Capybara::Driver::Node#trigger'
end
def shadow_root
raise NotSupportedByDriverError, 'Capybara::Driver::Node#shadow_root'
end
def inspect
%(#<#{self.class} tag="#{tag_name}" path="#{path}">)
rescue NotSupportedByDriverError
%(#<#{self.class} tag="#{tag_name}">)
end
def ==(other)
eql?(other) || (other.respond_to?(:native) && native == other.native)
end
end
end
end
|