lib/selenium/devtools/v138/dom.rb



# frozen_string_literal: true

# Licensed to the Software Freedom Conservancy (SFC) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The SFC licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# This file is automatically generated. Any changes will be lost!
module Selenium
  module DevTools
    module V138
      class DOM
        EVENTS = {
          attribute_modified: 'attributeModified',
          attribute_removed: 'attributeRemoved',
          character_data_modified: 'characterDataModified',
          child_node_count_updated: 'childNodeCountUpdated',
          child_node_inserted: 'childNodeInserted',
          child_node_removed: 'childNodeRemoved',
          distributed_nodes_updated: 'distributedNodesUpdated',
          document_updated: 'documentUpdated',
          inline_style_invalidated: 'inlineStyleInvalidated',
          pseudo_element_added: 'pseudoElementAdded',
          top_layer_elements_updated: 'topLayerElementsUpdated',
          scrollable_flag_updated: 'scrollableFlagUpdated',
          pseudo_element_removed: 'pseudoElementRemoved',
          set_child_nodes: 'setChildNodes',
          shadow_root_popped: 'shadowRootPopped',
          shadow_root_pushed: 'shadowRootPushed',
        }.freeze

        def initialize(devtools)
          @devtools = devtools
        end

        def on(event, &block)
          event = EVENTS[event] if event.is_a?(Symbol)
          @devtools.callbacks["DOM.#{event}"] << block
        end

        def collect_class_names_from_subtree(node_id:)
          @devtools.send_cmd('DOM.collectClassNamesFromSubtree',
                             nodeId: node_id)
        end

        def copy_to(node_id:, target_node_id:, insert_before_node_id: nil)
          @devtools.send_cmd('DOM.copyTo',
                             nodeId: node_id,
                             targetNodeId: target_node_id,
                             insertBeforeNodeId: insert_before_node_id)
        end

        def describe_node(node_id: nil, backend_node_id: nil, object_id: nil, depth: nil, pierce: nil)
          @devtools.send_cmd('DOM.describeNode',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id,
                             depth: depth,
                             pierce: pierce)
        end

        def scroll_into_view_if_needed(node_id: nil, backend_node_id: nil, object_id: nil, rect: nil)
          @devtools.send_cmd('DOM.scrollIntoViewIfNeeded',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id,
                             rect: rect)
        end

        def disable
          @devtools.send_cmd('DOM.disable')
        end

        def discard_search_results(search_id:)
          @devtools.send_cmd('DOM.discardSearchResults',
                             searchId: search_id)
        end

        def enable(include_whitespace: nil)
          @devtools.send_cmd('DOM.enable',
                             includeWhitespace: include_whitespace)
        end

        def focus(node_id: nil, backend_node_id: nil, object_id: nil)
          @devtools.send_cmd('DOM.focus',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id)
        end

        def get_attributes(node_id:)
          @devtools.send_cmd('DOM.getAttributes',
                             nodeId: node_id)
        end

        def get_box_model(node_id: nil, backend_node_id: nil, object_id: nil)
          @devtools.send_cmd('DOM.getBoxModel',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id)
        end

        def get_content_quads(node_id: nil, backend_node_id: nil, object_id: nil)
          @devtools.send_cmd('DOM.getContentQuads',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id)
        end

        def get_document(depth: nil, pierce: nil)
          @devtools.send_cmd('DOM.getDocument',
                             depth: depth,
                             pierce: pierce)
        end

        def get_flattened_document(depth: nil, pierce: nil)
          @devtools.send_cmd('DOM.getFlattenedDocument',
                             depth: depth,
                             pierce: pierce)
        end

        def get_nodes_for_subtree_by_style(node_id:, computed_styles:, pierce: nil)
          @devtools.send_cmd('DOM.getNodesForSubtreeByStyle',
                             nodeId: node_id,
                             computedStyles: computed_styles,
                             pierce: pierce)
        end

        def get_node_for_location(x:, y:, include_user_agent_shadow_dom: nil, ignore_pointer_events_none: nil)
          @devtools.send_cmd('DOM.getNodeForLocation',
                             x: x,
                             y: y,
                             includeUserAgentShadowDOM: include_user_agent_shadow_dom,
                             ignorePointerEventsNone: ignore_pointer_events_none)
        end

        def get_outer_html(node_id: nil, backend_node_id: nil, object_id: nil)
          @devtools.send_cmd('DOM.getOuterHTML',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id)
        end

        def get_relayout_boundary(node_id:)
          @devtools.send_cmd('DOM.getRelayoutBoundary',
                             nodeId: node_id)
        end

        def get_search_results(search_id:, from_index:, to_index:)
          @devtools.send_cmd('DOM.getSearchResults',
                             searchId: search_id,
                             fromIndex: from_index,
                             toIndex: to_index)
        end

        def hide_highlight
          @devtools.send_cmd('DOM.hideHighlight')
        end

        def highlight_node
          @devtools.send_cmd('DOM.highlightNode')
        end

        def highlight_rect
          @devtools.send_cmd('DOM.highlightRect')
        end

        def mark_undoable_state
          @devtools.send_cmd('DOM.markUndoableState')
        end

        def move_to(node_id:, target_node_id:, insert_before_node_id: nil)
          @devtools.send_cmd('DOM.moveTo',
                             nodeId: node_id,
                             targetNodeId: target_node_id,
                             insertBeforeNodeId: insert_before_node_id)
        end

        def perform_search(query:, include_user_agent_shadow_dom: nil)
          @devtools.send_cmd('DOM.performSearch',
                             query: query,
                             includeUserAgentShadowDOM: include_user_agent_shadow_dom)
        end

        def push_node_by_path_to_frontend(path:)
          @devtools.send_cmd('DOM.pushNodeByPathToFrontend',
                             path: path)
        end

        def push_nodes_by_backend_ids_to_frontend(backend_node_ids:)
          @devtools.send_cmd('DOM.pushNodesByBackendIdsToFrontend',
                             backendNodeIds: backend_node_ids)
        end

        def query_selector(node_id:, selector:)
          @devtools.send_cmd('DOM.querySelector',
                             nodeId: node_id,
                             selector: selector)
        end

        def query_selector_all(node_id:, selector:)
          @devtools.send_cmd('DOM.querySelectorAll',
                             nodeId: node_id,
                             selector: selector)
        end

        def get_top_layer_elements
          @devtools.send_cmd('DOM.getTopLayerElements')
        end

        def get_element_by_relation(node_id:, relation:)
          @devtools.send_cmd('DOM.getElementByRelation',
                             nodeId: node_id,
                             relation: relation)
        end

        def redo
          @devtools.send_cmd('DOM.redo')
        end

        def remove_attribute(node_id:, name:)
          @devtools.send_cmd('DOM.removeAttribute',
                             nodeId: node_id,
                             name: name)
        end

        def remove_node(node_id:)
          @devtools.send_cmd('DOM.removeNode',
                             nodeId: node_id)
        end

        def request_child_nodes(node_id:, depth: nil, pierce: nil)
          @devtools.send_cmd('DOM.requestChildNodes',
                             nodeId: node_id,
                             depth: depth,
                             pierce: pierce)
        end

        def request_node(object_id:)
          @devtools.send_cmd('DOM.requestNode',
                             objectId: object_id)
        end

        def resolve_node(node_id: nil, backend_node_id: nil, object_group: nil, execution_context_id: nil)
          @devtools.send_cmd('DOM.resolveNode',
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectGroup: object_group,
                             executionContextId: execution_context_id)
        end

        def set_attribute_value(node_id:, name:, value:)
          @devtools.send_cmd('DOM.setAttributeValue',
                             nodeId: node_id,
                             name: name,
                             value: value)
        end

        def set_attributes_as_text(node_id:, text:, name: nil)
          @devtools.send_cmd('DOM.setAttributesAsText',
                             nodeId: node_id,
                             text: text,
                             name: name)
        end

        def set_file_input_files(files:, node_id: nil, backend_node_id: nil, object_id: nil)
          @devtools.send_cmd('DOM.setFileInputFiles',
                             files: files,
                             nodeId: node_id,
                             backendNodeId: backend_node_id,
                             objectId: object_id)
        end

        def set_node_stack_traces_enabled(enable:)
          @devtools.send_cmd('DOM.setNodeStackTracesEnabled',
                             enable: enable)
        end

        def get_node_stack_traces(node_id:)
          @devtools.send_cmd('DOM.getNodeStackTraces',
                             nodeId: node_id)
        end

        def get_file_info(object_id:)
          @devtools.send_cmd('DOM.getFileInfo',
                             objectId: object_id)
        end

        def get_detached_dom_nodes
          @devtools.send_cmd('DOM.getDetachedDomNodes')
        end

        def set_inspected_node(node_id:)
          @devtools.send_cmd('DOM.setInspectedNode',
                             nodeId: node_id)
        end

        def set_node_name(node_id:, name:)
          @devtools.send_cmd('DOM.setNodeName',
                             nodeId: node_id,
                             name: name)
        end

        def set_node_value(node_id:, value:)
          @devtools.send_cmd('DOM.setNodeValue',
                             nodeId: node_id,
                             value: value)
        end

        def set_outer_html(node_id:, outer_html:)
          @devtools.send_cmd('DOM.setOuterHTML',
                             nodeId: node_id,
                             outerHTML: outer_html)
        end

        def undo
          @devtools.send_cmd('DOM.undo')
        end

        def get_frame_owner(frame_id:)
          @devtools.send_cmd('DOM.getFrameOwner',
                             frameId: frame_id)
        end

        def get_container_for_node(node_id:, container_name: nil, physical_axes: nil, logical_axes: nil, queries_scroll_state: nil)
          @devtools.send_cmd('DOM.getContainerForNode',
                             nodeId: node_id,
                             containerName: container_name,
                             physicalAxes: physical_axes,
                             logicalAxes: logical_axes,
                             queriesScrollState: queries_scroll_state)
        end

        def get_querying_descendants_for_container(node_id:)
          @devtools.send_cmd('DOM.getQueryingDescendantsForContainer',
                             nodeId: node_id)
        end

        def get_anchor_element(node_id:, anchor_specifier: nil)
          @devtools.send_cmd('DOM.getAnchorElement',
                             nodeId: node_id,
                             anchorSpecifier: anchor_specifier)
        end

      end # DOM
    end # V138
  end # DevTools
end # Selenium