1081 lines
29 KiB
Plaintext
1081 lines
29 KiB
Plaintext
note
|
|
description: "{COMMAND_EXECUTOR} object that execute a command in the JSONWireProtocol"
|
|
author: ""
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
EIS: "name=SELINIUM", "protocol=JSONWireProtocol", "src=https://code.google.com/p/selenium/wiki/JsonWireProtocol#Commands"
|
|
|
|
class
|
|
COMMAND_EXECUTOR
|
|
|
|
inherit
|
|
|
|
JSON_HELPER
|
|
|
|
SE_JSON_WIRE_PROTOCOL_COMMANDS
|
|
|
|
-- TODO
|
|
-- clean and improve the code
|
|
-- handle response from the server in a smart way
|
|
create
|
|
make
|
|
|
|
feature -- Initialization
|
|
|
|
make (a_host: STRING_32)
|
|
local
|
|
h: LIBCURL_HTTP_CLIENT
|
|
do
|
|
host := a_host
|
|
create h.make
|
|
http_session := h.new_session (a_host)
|
|
-- http_session.set_is_debug (True)
|
|
-- http_session.set_proxy ("127.0.0.1", 8888)
|
|
end
|
|
|
|
feature -- Status Report
|
|
|
|
is_available: BOOLEAN
|
|
-- Is the Seleniun server up and running?
|
|
do
|
|
Result := http_session.is_available
|
|
end
|
|
|
|
feature -- Commands
|
|
|
|
status: SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_status)
|
|
Result := new_response ("", resp)
|
|
end
|
|
|
|
new_session (capabilities: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
create Result.make_empty
|
|
resp := execute_post (cmd_new_session, capabilities)
|
|
-- TODO move this scenario to feature new_response
|
|
if not (resp.status >= 400) then
|
|
if attached resp.header ("Location") as l_location then
|
|
resp := http_new_session (l_location).get ("", context_executor)
|
|
Result := new_response ("", resp)
|
|
end
|
|
else
|
|
Result := new_response ("", resp)
|
|
end
|
|
end
|
|
|
|
sessions: SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_sessions)
|
|
Result := new_response ("", resp)
|
|
end
|
|
|
|
retrieve_session (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_by_id (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
delete_session (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_by_id ( session_id ))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
set_session_timeouts (a_session_id: STRING_32; a_data_timeout: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_timeouts (a_session_id), a_data_timeout)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_session_timeouts_async_script (a_session_id: STRING_32; a_data_timeout: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_timeouts_async_script (a_session_id), a_data_timeout)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_session_timeouts_implicit_wait (a_session_id: STRING_32; a_data_timeout: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_timeouts_implicit_wait (a_session_id), a_data_timeout)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
retrieve_window_handle (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_window_handle (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
retrieve_window_handles (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_window_handles (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
retrieve_url (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_url (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
navigate_to_url (a_session_id: STRING_32; a_url: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_url (a_session_id), a_url)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
forward (a_session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_forward (a_session_id), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
back (a_session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_back (a_session_id), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
refresh (a_session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_refresh (a_session_id), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
execute
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
-- TODO
|
|
end
|
|
|
|
execute_async
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
-- TODO
|
|
end
|
|
|
|
screenshot (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_screenshot (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
ime_available_engines (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_ime_available (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
ime_active_engine (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_ime_active_engine (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
ime_activated (session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_ime_activated (session_id))
|
|
Result := new_response (session_id, resp)
|
|
end
|
|
|
|
ime_deactivate (a_session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_ime_deactivate (a_session_id), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
ime_activate (a_session_id: STRING_32; an_engine: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_ime_activate (a_session_id), an_engine)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
change_focus_window (a_session_id: STRING_32; a_data: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_window (a_session_id), a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
close_window (a_session_id: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_window (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
change_size_window (a_session_id: STRING_32; a_window_handle : STRING_32;a_data: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_window_size (a_session_id,a_window_handle), a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
size_window (a_session_id: STRING_32; a_window_handle : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_window_size (a_session_id,a_window_handle))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
change_window_position (a_session_id: STRING_32; a_window_handle : STRING_32;a_data: STRING_32): SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_window_position (a_session_id,a_window_handle), a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
window_position (a_session_id: STRING_32; a_window_handle : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_window_size (a_session_id,a_window_handle))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
window_maximize (a_session_id: STRING_32; a_window_handle : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_window_maximize (a_session_id,a_window_handle), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
retrieve_cookies (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_cookie (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_cookie (a_session_id: STRING_32; a_data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_cookie (a_session_id),a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
delete_cookies (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_cookie (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
delete_cookie_by_name (a_session_id: STRING_32; a_name : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_cookie_delete (a_session_id,a_name))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
page_source (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_source (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
page_title (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_title (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
search_element (a_session_id: STRING_32; a_data :STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element (a_session_id),a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
search_element_id_element (a_session_id: STRING_32; id : STRING_32; a_data :STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_id_element (a_session_id,id),a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
search_elements (a_session_id: STRING_32; a_data :STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_elements (a_session_id),a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
|
|
element_active (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_active (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
search_element_id_elements (a_session_id: STRING_32; id : STRING_32; a_data :STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_id_elements (a_session_id,id),a_data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
element_click (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_click (a_session_id,id),Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
element_submit (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_submit (a_session_id,id),Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
element_text (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_text (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
send_events (a_session_id: STRING_32; id : STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_event (a_session_id,id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
send_key_strokes (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_keys (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
query_by_tag_name (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_name (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
clear_element (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_element_clear (a_session_id,id), Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
is_enabled (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_enabled (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
is_selected (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_selected (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
element_value (a_session_id: STRING_32; id : STRING_32; name : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_attribute_name (a_session_id,id,name))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
element_equals (a_session_id: STRING_32; id : STRING_32; other : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_equals (a_session_id,id,other))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
is_displayed (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_displayed (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
element_location (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_location (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
location_in_view (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_location_in_view (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
element_size (a_session_id: STRING_32; id : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_size (a_session_id,id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
element_css_value (a_session_id: STRING_32; id : STRING_32; property_name : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_element_css_value (a_session_id,id, property_name))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
retrieve_browser_orientation (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_browser_orientation (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
set_browser_orientation (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_browser_orientation (a_session_id), data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
retrieve_alert_text (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_alert_text (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
send_alert_text (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_alert_text (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
accept_alert (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_accept_alert (a_session_id),Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
dismiss_alert (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_dismiss_alert (a_session_id),Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
move_to (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_move_to (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
click (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_click (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
button_down (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_buttondown (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
button_up (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_buttonup (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
double_click (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_double_click (a_session_id),Void)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
touch_click (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_click (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
touch_down (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_down (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
touch_up (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_up (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
touch_move (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_move (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
start_touch_scroll (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_scroll (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
touch_scroll (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
Result := start_touch_scroll (a_session_id, data)
|
|
end
|
|
|
|
touch_double_click (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_double_click (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
touch_long_click (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_long_click (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
start_touch_flick (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_touch_flick (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
|
|
touch_flick (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
Result := start_touch_flick (a_session_id, data)
|
|
end
|
|
|
|
|
|
retrieve_geo_location (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_geo_location (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_geo_location (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_geo_location (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
retrieve_local_storage (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_local_storage (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_location_storage (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_local_storage (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
delete_local_storage (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_local_storage (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
retrieve_storage_by_key (a_session_id: STRING_32; key : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_local_storage_key (a_session_id,key))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
delete_storage_by_key (a_session_id: STRING_32; key : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_local_storage_key (a_session_id,key))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
local_storage_size (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_local_storage_size (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
session_storage_keys (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_storage (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
set_session_storage (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_storage (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
delete_session_storage (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_storage (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
retrive_storage_item_by_key (a_session_id: STRING_32; key : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_storage_key (a_session_id,key))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
remove_storage_item_by_key (a_session_id: STRING_32; key : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_delete (cmd_session_storage_key (a_session_id,key))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
session_storage_size (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_storage_size (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
log (a_session_id: STRING_32; data : STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_post (cmd_session_log (a_session_id),data)
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
available_log_types (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_log_types (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
application_cache_status (a_session_id: STRING_32) : SE_RESPONSE
|
|
require
|
|
selinum_server_available: is_available
|
|
local
|
|
resp: HTTP_CLIENT_RESPONSE
|
|
do
|
|
resp := execute_get (cmd_session_application_cache (a_session_id))
|
|
Result := new_response (a_session_id, resp)
|
|
end
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
execute_get (command_name: STRING_32): HTTP_CLIENT_RESPONSE
|
|
do
|
|
Result := http_session.get (command_name, context_executor)
|
|
end
|
|
|
|
execute_post (command_name: STRING_32; data: detachable READABLE_STRING_8): HTTP_CLIENT_RESPONSE
|
|
do
|
|
Result := http_session.post (command_name, context_executor, data)
|
|
end
|
|
|
|
execute_delete (command_name: STRING_32): HTTP_CLIENT_RESPONSE
|
|
do
|
|
Result := http_session.delete (command_name, context_executor)
|
|
end
|
|
|
|
new_response (a_session_id : STRING_32; resp: HTTP_CLIENT_RESPONSE): SE_RESPONSE
|
|
-- Create a new Selenium Response based on `resp' HTTP_RESPONSE
|
|
-- todo improve it!!!
|
|
do
|
|
create Result.make_empty
|
|
if resp.status = 204 then
|
|
Result.set_status (0)
|
|
Result.set_session_id (a_session_id)
|
|
else
|
|
if attached resp.body as l_body then
|
|
if attached json_to_se_response(l_body) as l_response then
|
|
Result := l_response
|
|
end
|
|
Result.set_json_response (l_body)
|
|
end
|
|
end
|
|
end
|
|
|
|
context_executor: HTTP_CLIENT_REQUEST_CONTEXT
|
|
-- request context for each request
|
|
do
|
|
create Result.make
|
|
Result.headers.put ("application/json;charset=UTF-8", "Content-Type")
|
|
Result.headers.put ("application/json;charset=UTF-8", "Accept")
|
|
end
|
|
|
|
host: STRING_32
|
|
|
|
http_session: HTTP_CLIENT_SESSION
|
|
|
|
http_new_session (url: STRING_32): HTTP_CLIENT_SESSION
|
|
local
|
|
h: LIBCURL_HTTP_CLIENT
|
|
do
|
|
create h.make
|
|
Result := h.new_session (url)
|
|
-- Result.set_is_debug (True)
|
|
-- Result.set_proxy ("127.0.0.1", 8888)
|
|
end
|
|
|
|
end
|