class Playwright::ChannelOwners::ElementHandle
def as_element
def as_element self end
def bounding_box
def bounding_box @channel.send_message_to_server('boundingBox') end
def check(force: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil)
def check(force: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { force: force, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('check', params) nil end
def checked?
def checked? @channel.send_message_to_server('isChecked') end
def click(
def click( button: nil, clickCount: nil, delay: nil, force: nil, modifiers: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('click', params) nil end
def content_frame
def content_frame resp = @channel.send_message_to_server('contentFrame') ChannelOwners::Frame.from_nullable(resp) end
def dblclick(
def dblclick( button: nil, delay: nil, force: nil, modifiers: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { button: button, delay: delay, force: force, modifiers: modifiers, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('dblclick', params) nil end
def disabled?
def disabled? @channel.send_message_to_server('isDisabled') end
def dispatch_event(type, eventInit: nil)
def dispatch_event(type, eventInit: nil) params = { type: type, eventInit: JavaScript::ValueSerializer.new(eventInit).serialize, }.compact @channel.send_message_to_server('dispatchEvent', params) nil end
def editable?
def editable? @channel.send_message_to_server('isEditable') end
def enabled?
def enabled? @channel.send_message_to_server('isEnabled') end
def eval_on_selector(selector, pageFunction, arg: nil)
def eval_on_selector(selector, pageFunction, arg: nil) JavaScript::Expression.new(pageFunction, arg).eval_on_selector(@channel, selector) end
def eval_on_selector_all(selector, pageFunction, arg: nil)
def eval_on_selector_all(selector, pageFunction, arg: nil) JavaScript::Expression.new(pageFunction, arg).eval_on_selector_all(@channel, selector) end
def fill(value, force: nil, noWaitAfter: nil, timeout: nil)
def fill(value, force: nil, noWaitAfter: nil, timeout: nil) params = { value: value, force: force, noWaitAfter: noWaitAfter, timeout: timeout, }.compact @channel.send_message_to_server('fill', params) nil end
def focus
def focus @channel.send_message_to_server('focus') nil end
def get_attribute(name)
def get_attribute(name) @channel.send_message_to_server('getAttribute', name: name) end
def hidden?
def hidden? @channel.send_message_to_server('isHidden') end
def hover(
def hover( force: nil, modifiers: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { force: force, modifiers: modifiers, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('hover', params) nil end
def inner_html
def inner_html @channel.send_message_to_server('innerHTML') end
def inner_text
def inner_text @channel.send_message_to_server('innerText') end
def input_value(timeout: nil)
def input_value(timeout: nil) params = { timeout: timeout }.compact @channel.send_message_to_server('inputValue', params) end
def owner_frame
def owner_frame resp = @channel.send_message_to_server('ownerFrame') ChannelOwners::Frame.from_nullable(resp) end
def press(key, delay: nil, noWaitAfter: nil, timeout: nil)
def press(key, delay: nil, noWaitAfter: nil, timeout: nil) params = { key: key, delay: delay, noWaitAfter: noWaitAfter, timeout: timeout, }.compact @channel.send_message_to_server('press', params) nil end
def query_selector(selector)
def query_selector(selector) resp = @channel.send_message_to_server('querySelector', selector: selector) ChannelOwners::ElementHandle.from_nullable(resp) end
def query_selector_all(selector)
def query_selector_all(selector) @channel.send_message_to_server('querySelectorAll', selector: selector).map do |el| ChannelOwners::ElementHandle.from(el) end end
def screenshot(
def screenshot( animations: nil, caret: nil, mask: nil, maskColor: nil, omitBackground: nil, path: nil, quality: nil, scale: nil, style: nil, timeout: nil, type: nil) params = { animations: animations, caret: caret, maskColor: maskColor, omitBackground: omitBackground, path: path, quality: quality, scale: scale, style: style, timeout: timeout, type: type, }.compact if mask.is_a?(Enumerable) params[:mask] = mask.map do |locator| locator.send(:to_protocol) end end encoded_binary = @channel.send_message_to_server('screenshot', params) decoded_binary = Base64.strict_decode64(encoded_binary) if path File.open(path, 'wb') do |f| f.write(decoded_binary) end end decoded_binary end
def scroll_into_view_if_needed(timeout: nil)
def scroll_into_view_if_needed(timeout: nil) params = { timeout: timeout, }.compact @channel.send_message_to_server('scrollIntoViewIfNeeded', params) nil end
def select_option(
def select_option( element: nil, index: nil, value: nil, label: nil, force: nil, noWaitAfter: nil, timeout: nil) base_params = SelectOptionValues.new( element: element, index: index, value: value, label: label, ).as_params params = base_params.merge({ force: force, noWaitAfter: noWaitAfter, timeout: timeout }.compact) @channel.send_message_to_server('selectOption', params) end
def select_text(force: nil, timeout: nil)
def select_text(force: nil, timeout: nil) params = { force: force, timeout: timeout }.compact @channel.send_message_to_server('selectText', params) nil end
def set_checked(checked, **options)
def set_checked(checked, **options) if checked check(**options) else uncheck(**options) end end
def set_input_files(files, noWaitAfter: nil, timeout: nil)
def set_input_files(files, noWaitAfter: nil, timeout: nil) frame = owner_frame unless frame raise 'Cannot set input files to detached element' end method_name, params = InputFiles.new(frame.page.context, files).as_method_and_params params.merge!({ noWaitAfter: noWaitAfter, timeout: timeout }.compact) @channel.send_message_to_server(method_name, params) nil end
def tap_point(
def tap_point( force: nil, modifiers: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { force: force, modifiers: modifiers, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('tap', params) nil end
def text_content
def text_content @channel.send_message_to_server('textContent') end
def type(text, delay: nil, noWaitAfter: nil, timeout: nil)
def type(text, delay: nil, noWaitAfter: nil, timeout: nil) params = { text: text, delay: delay, noWaitAfter: noWaitAfter, timeout: timeout, }.compact @channel.send_message_to_server('type', params) nil end
def uncheck(force: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil)
def uncheck(force: nil, noWaitAfter: nil, position: nil, timeout: nil, trial: nil) params = { force: force, noWaitAfter: noWaitAfter, position: position, timeout: timeout, trial: trial, }.compact @channel.send_message_to_server('uncheck', params) nil end
def visible?
def visible? @channel.send_message_to_server('isVisible') end
def wait_for_element_state(state, timeout: nil)
def wait_for_element_state(state, timeout: nil) params = { state: state, timeout: timeout }.compact @channel.send_message_to_server('waitForElementState', params) nil end
def wait_for_selector(selector, state: nil, strict: nil, timeout: nil)
def wait_for_selector(selector, state: nil, strict: nil, timeout: nil) params = { selector: selector, state: state, strict: strict, timeout: timeout }.compact resp = @channel.send_message_to_server('waitForSelector', params) ChannelOwners::ElementHandle.from_nullable(resp) end