File: //lib/ruby/vendor_ruby/selenium/webdriver/remote/oss/commands.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.
module Selenium
module WebDriver
module Remote
module OSS
#
# https://github.com/SeleniumHQ/selenium/wiki/JsonWireProtocol#command-reference
# @api private
#
class Bridge
COMMANDS = {
get_capabilities: [:get, 'session/:session_id'],
status: [:get, 'status'],
#
# basic driver
#
get_current_url: [:get, 'session/:session_id/url'],
get: [:post, 'session/:session_id/url'],
go_forward: [:post, 'session/:session_id/forward'],
go_back: [:post, 'session/:session_id/back'],
refresh: [:post, 'session/:session_id/refresh'],
quit: [:delete, 'session/:session_id'],
close: [:delete, 'session/:session_id/window'],
get_page_source: [:get, 'session/:session_id/source'],
get_title: [:get, 'session/:session_id/title'],
find_element: [:post, 'session/:session_id/element'],
find_elements: [:post, 'session/:session_id/elements'],
get_active_element: [:post, 'session/:session_id/element/active'],
#
# window handling
#
get_current_window_handle: [:get, 'session/:session_id/window_handle'],
get_window_handles: [:get, 'session/:session_id/window_handles'],
set_window_size: [:post, 'session/:session_id/window/:window_handle/size'],
set_window_position: [:post, 'session/:session_id/window/:window_handle/position'],
get_window_size: [:get, 'session/:session_id/window/:window_handle/size'],
get_window_position: [:get, 'session/:session_id/window/:window_handle/position'],
maximize_window: [:post, 'session/:session_id/window/:window_handle/maximize'],
#
# script execution
#
execute_script: [:post, 'session/:session_id/execute'],
execute_async_script: [:post, 'session/:session_id/execute_async'],
#
# screenshot
#
screenshot: [:get, 'session/:session_id/screenshot'],
#
# alerts
#
dismiss_alert: [:post, 'session/:session_id/dismiss_alert'],
accept_alert: [:post, 'session/:session_id/accept_alert'],
get_alert_text: [:get, 'session/:session_id/alert_text'],
set_alert_value: [:post, 'session/:session_id/alert_text'],
set_authentication: [:post, 'session/:session_id/alert/credentials'],
#
# target locator
#
switch_to_frame: [:post, 'session/:session_id/frame'],
switch_to_parent_frame: [:post, 'session/:session_id/frame/parent'],
switch_to_window: [:post, 'session/:session_id/window'],
#
# options
#
get_cookies: [:get, 'session/:session_id/cookie'],
add_cookie: [:post, 'session/:session_id/cookie'],
delete_all_cookies: [:delete, 'session/:session_id/cookie'],
delete_cookie: [:delete, 'session/:session_id/cookie/:name'],
#
# timeouts
#
implicitly_wait: [:post, 'session/:session_id/timeouts/implicit_wait'],
set_script_timeout: [:post, 'session/:session_id/timeouts/async_script'],
set_timeout: [:post, 'session/:session_id/timeouts'],
#
# element
#
describe_element: [:get, 'session/:session_id/element/:id'],
find_child_element: [:post, 'session/:session_id/element/:id/element'],
find_child_elements: [:post, 'session/:session_id/element/:id/elements'],
click_element: [:post, 'session/:session_id/element/:id/click'],
submit_element: [:post, 'session/:session_id/element/:id/submit'],
get_element_value: [:get, 'session/:session_id/element/:id/value'],
send_keys_to_element: [:post, 'session/:session_id/element/:id/value'],
upload_file: [:post, 'session/:session_id/file'],
get_element_tag_name: [:get, 'session/:session_id/element/:id/name'],
clear_element: [:post, 'session/:session_id/element/:id/clear'],
is_element_selected: [:get, 'session/:session_id/element/:id/selected'],
is_element_enabled: [:get, 'session/:session_id/element/:id/enabled'],
get_element_attribute: [:get, 'session/:session_id/element/:id/attribute/:name'],
element_equals: [:get, 'session/:session_id/element/:id/equals/:other'],
is_element_displayed: [:get, 'session/:session_id/element/:id/displayed'],
get_element_location: [:get, 'session/:session_id/element/:id/location'],
get_element_location_once_scrolled_into_view: [:get, 'session/:session_id/element/:id/location_in_view'],
get_element_size: [:get, 'session/:session_id/element/:id/size'],
drag_element: [:post, 'session/:session_id/element/:id/drag'],
get_element_value_of_css_property: [:get, 'session/:session_id/element/:id/css/:property_name'],
get_element_text: [:get, 'session/:session_id/element/:id/text'],
#
# rotatable
#
get_screen_orientation: [:get, 'session/:session_id/orientation'],
set_screen_orientation: [:post, 'session/:session_id/orientation'],
#
# interactions API
#
click: [:post, 'session/:session_id/click'],
double_click: [:post, 'session/:session_id/doubleclick'],
mouse_down: [:post, 'session/:session_id/buttondown'],
mouse_up: [:post, 'session/:session_id/buttonup'],
mouse_move_to: [:post, 'session/:session_id/moveto'],
send_modifier_key_to_active_element: [:post, 'session/:session_id/modifier'],
send_keys_to_active_element: [:post, 'session/:session_id/keys'],
#
# html 5
#
execute_sql: [:post, 'session/:session_id/execute_sql'],
get_location: [:get, 'session/:session_id/location'],
set_location: [:post, 'session/:session_id/location'],
get_app_cache: [:get, 'session/:session_id/application_cache'],
get_app_cache_status: [:get, 'session/:session_id/application_cache/status'],
clear_app_cache: [:delete, 'session/:session_id/application_cache/clear'],
get_network_connection: [:get, 'session/:session_id/network_connection'],
set_network_connection: [:post, 'session/:session_id/network_connection'],
get_local_storage_item: [:get, 'session/:session_id/local_storage/key/:key'],
remove_local_storage_item: [:delete, 'session/:session_id/local_storage/key/:key'],
get_local_storage_keys: [:get, 'session/:session_id/local_storage'],
set_local_storage_item: [:post, 'session/:session_id/local_storage'],
clear_local_storage: [:delete, 'session/:session_id/local_storage'],
get_local_storage_size: [:get, 'session/:session_id/local_storage/size'],
get_session_storage_item: [:get, 'session/:session_id/session_storage/key/:key'],
remove_session_storage_item: [:delete, 'session/:session_id/session_storage/key/:key'],
get_session_storage_keys: [:get, 'session/:session_id/session_storage'],
set_session_storage_item: [:post, 'session/:session_id/session_storage'],
clear_session_storage: [:delete, 'session/:session_id/session_storage'],
get_session_storage_size: [:get, 'session/:session_id/session_storage/size'],
#
# ime
#
ime_get_available_engines: [:get, 'session/:session_id/ime/available_engines'],
ime_get_active_engine: [:get, 'session/:session_id/ime/active_engine'],
ime_is_activated: [:get, 'session/:session_id/ime/activated'],
ime_deactivate: [:post, 'session/:session_id/ime/deactivate'],
ime_activate_engine: [:post, 'session/:session_id/ime/activate'],
#
# touch
#
touch_single_tap: [:post, 'session/:session_id/touch/click'],
touch_double_tap: [:post, 'session/:session_id/touch/doubleclick'],
touch_long_press: [:post, 'session/:session_id/touch/longclick'],
touch_down: [:post, 'session/:session_id/touch/down'],
touch_up: [:post, 'session/:session_id/touch/up'],
touch_move: [:post, 'session/:session_id/touch/move'],
touch_scroll: [:post, 'session/:session_id/touch/scroll'],
touch_flick: [:post, 'session/:session_id/touch/flick'],
#
# logs
#
get_available_log_types: [:get, 'session/:session_id/log/types'],
get_log: [:post, 'session/:session_id/log']
}.freeze
end # Bridge
end # OSS
end # Remote
end # WebDriver
end # Selenium