DriverCommandExecutor
extends HttpCommandExecutor
in package
A HttpCommandExecutor that talks to a local driver service instead of a remote server.
Table of Contents
Constants
- DEFAULT_HTTP_HEADERS = ['Content-Type: application/json;charset=UTF-8', 'Accept: application/json']
Properties
- $commands : mixed
- $curl : resource
- $isW3cCompliant : bool
- $url : string
- $w3cCompliantCommands : array<string|int, mixed>
- $service : DriverService
Methods
- __construct() : mixed
- disableW3cCompliance() : mixed
- execute() : WebDriverResponse
- getAddressOfRemoteServer() : string
- setConnectionTimeout() : HttpCommandExecutor
- Set timeout for the connect phase
- setRequestTimeout() : HttpCommandExecutor
- Set the maximum time of a request
- getCommandHttpOptions() : array<string|int, mixed>
Constants
DEFAULT_HTTP_HEADERS
public
mixed
DEFAULT_HTTP_HEADERS
= ['Content-Type: application/json;charset=UTF-8', 'Accept: application/json']
Properties
$commands
protected
static mixed
$commands
= [
\Facebook\WebDriver\Remote\DriverCommand::ACCEPT_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/accept_alert'],
\Facebook\WebDriver\Remote\DriverCommand::ADD_COOKIE => ['method' => 'POST', 'url' => '/session/:sessionId/cookie'],
\Facebook\WebDriver\Remote\DriverCommand::CLEAR_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/clear'],
\Facebook\WebDriver\Remote\DriverCommand::CLICK_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/click'],
\Facebook\WebDriver\Remote\DriverCommand::CLOSE => ['method' => 'DELETE', 'url' => '/session/:sessionId/window'],
\Facebook\WebDriver\Remote\DriverCommand::DELETE_ALL_COOKIES => ['method' => 'DELETE', 'url' => '/session/:sessionId/cookie'],
\Facebook\WebDriver\Remote\DriverCommand::DELETE_COOKIE => ['method' => 'DELETE', 'url' => '/session/:sessionId/cookie/:name'],
\Facebook\WebDriver\Remote\DriverCommand::DISMISS_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/dismiss_alert'],
\Facebook\WebDriver\Remote\DriverCommand::ELEMENT_EQUALS => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/equals/:other'],
\Facebook\WebDriver\Remote\DriverCommand::FIND_CHILD_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/element'],
\Facebook\WebDriver\Remote\DriverCommand::FIND_CHILD_ELEMENTS => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/elements'],
\Facebook\WebDriver\Remote\DriverCommand::EXECUTE_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute'],
\Facebook\WebDriver\Remote\DriverCommand::EXECUTE_ASYNC_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute_async'],
\Facebook\WebDriver\Remote\DriverCommand::FIND_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element'],
\Facebook\WebDriver\Remote\DriverCommand::FIND_ELEMENTS => ['method' => 'POST', 'url' => '/session/:sessionId/elements'],
\Facebook\WebDriver\Remote\DriverCommand::SWITCH_TO_FRAME => ['method' => 'POST', 'url' => '/session/:sessionId/frame'],
\Facebook\WebDriver\Remote\DriverCommand::SWITCH_TO_PARENT_FRAME => ['method' => 'POST', 'url' => '/session/:sessionId/frame/parent'],
\Facebook\WebDriver\Remote\DriverCommand::SWITCH_TO_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window'],
\Facebook\WebDriver\Remote\DriverCommand::GET => ['method' => 'POST', 'url' => '/session/:sessionId/url'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ACTIVE_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/active'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ALERT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/alert_text'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ALL_COOKIES => ['method' => 'GET', 'url' => '/session/:sessionId/cookie'],
\Facebook\WebDriver\Remote\DriverCommand::GET_NAMED_COOKIE => ['method' => 'GET', 'url' => '/session/:sessionId/cookie/:name'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ALL_SESSIONS => ['method' => 'GET', 'url' => '/sessions'],
\Facebook\WebDriver\Remote\DriverCommand::GET_AVAILABLE_LOG_TYPES => ['method' => 'GET', 'url' => '/session/:sessionId/log/types'],
\Facebook\WebDriver\Remote\DriverCommand::GET_CURRENT_URL => ['method' => 'GET', 'url' => '/session/:sessionId/url'],
\Facebook\WebDriver\Remote\DriverCommand::GET_CURRENT_WINDOW_HANDLE => ['method' => 'GET', 'url' => '/session/:sessionId/window_handle'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_ATTRIBUTE => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/attribute/:name'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_VALUE_OF_CSS_PROPERTY => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/css/:propertyName'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_LOCATION => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/location'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_LOCATION_ONCE_SCROLLED_INTO_VIEW => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/location_in_view'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/size'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_TAG_NAME => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/name'],
\Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/text'],
\Facebook\WebDriver\Remote\DriverCommand::GET_LOG => ['method' => 'POST', 'url' => '/session/:sessionId/log'],
\Facebook\WebDriver\Remote\DriverCommand::GET_PAGE_SOURCE => ['method' => 'GET', 'url' => '/session/:sessionId/source'],
\Facebook\WebDriver\Remote\DriverCommand::GET_SCREEN_ORIENTATION => ['method' => 'GET', 'url' => '/session/:sessionId/orientation'],
\Facebook\WebDriver\Remote\DriverCommand::GET_CAPABILITIES => ['method' => 'GET', 'url' => '/session/:sessionId'],
\Facebook\WebDriver\Remote\DriverCommand::GET_TITLE => ['method' => 'GET', 'url' => '/session/:sessionId/title'],
\Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_HANDLES => ['method' => 'GET', 'url' => '/session/:sessionId/window_handles'],
\Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_POSITION => ['method' => 'GET', 'url' => '/session/:sessionId/window/:windowHandle/position'],
\Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/window/:windowHandle/size'],
\Facebook\WebDriver\Remote\DriverCommand::GO_BACK => ['method' => 'POST', 'url' => '/session/:sessionId/back'],
\Facebook\WebDriver\Remote\DriverCommand::GO_FORWARD => ['method' => 'POST', 'url' => '/session/:sessionId/forward'],
\Facebook\WebDriver\Remote\DriverCommand::IS_ELEMENT_DISPLAYED => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/displayed'],
\Facebook\WebDriver\Remote\DriverCommand::IS_ELEMENT_ENABLED => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/enabled'],
\Facebook\WebDriver\Remote\DriverCommand::IS_ELEMENT_SELECTED => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/selected'],
\Facebook\WebDriver\Remote\DriverCommand::MAXIMIZE_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/:windowHandle/maximize'],
\Facebook\WebDriver\Remote\DriverCommand::MOUSE_DOWN => ['method' => 'POST', 'url' => '/session/:sessionId/buttondown'],
\Facebook\WebDriver\Remote\DriverCommand::MOUSE_UP => ['method' => 'POST', 'url' => '/session/:sessionId/buttonup'],
\Facebook\WebDriver\Remote\DriverCommand::CLICK => ['method' => 'POST', 'url' => '/session/:sessionId/click'],
\Facebook\WebDriver\Remote\DriverCommand::DOUBLE_CLICK => ['method' => 'POST', 'url' => '/session/:sessionId/doubleclick'],
\Facebook\WebDriver\Remote\DriverCommand::MOVE_TO => ['method' => 'POST', 'url' => '/session/:sessionId/moveto'],
\Facebook\WebDriver\Remote\DriverCommand::NEW_SESSION => ['method' => 'POST', 'url' => '/session'],
\Facebook\WebDriver\Remote\DriverCommand::QUIT => ['method' => 'DELETE', 'url' => '/session/:sessionId'],
\Facebook\WebDriver\Remote\DriverCommand::REFRESH => ['method' => 'POST', 'url' => '/session/:sessionId/refresh'],
\Facebook\WebDriver\Remote\DriverCommand::UPLOAD_FILE => ['method' => 'POST', 'url' => '/session/:sessionId/file'],
// undocumented
\Facebook\WebDriver\Remote\DriverCommand::SEND_KEYS_TO_ACTIVE_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/keys'],
\Facebook\WebDriver\Remote\DriverCommand::SET_ALERT_VALUE => ['method' => 'POST', 'url' => '/session/:sessionId/alert_text'],
\Facebook\WebDriver\Remote\DriverCommand::SEND_KEYS_TO_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/value'],
\Facebook\WebDriver\Remote\DriverCommand::IMPLICITLY_WAIT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts/implicit_wait'],
\Facebook\WebDriver\Remote\DriverCommand::SET_SCREEN_ORIENTATION => ['method' => 'POST', 'url' => '/session/:sessionId/orientation'],
\Facebook\WebDriver\Remote\DriverCommand::SET_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'],
\Facebook\WebDriver\Remote\DriverCommand::SET_SCRIPT_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts/async_script'],
\Facebook\WebDriver\Remote\DriverCommand::SET_WINDOW_POSITION => ['method' => 'POST', 'url' => '/session/:sessionId/window/:windowHandle/position'],
\Facebook\WebDriver\Remote\DriverCommand::SET_WINDOW_SIZE => ['method' => 'POST', 'url' => '/session/:sessionId/window/:windowHandle/size'],
\Facebook\WebDriver\Remote\DriverCommand::STATUS => ['method' => 'GET', 'url' => '/status'],
\Facebook\WebDriver\Remote\DriverCommand::SUBMIT_ELEMENT => ['method' => 'POST', 'url' => '/session/:sessionId/element/:id/submit'],
\Facebook\WebDriver\Remote\DriverCommand::SCREENSHOT => ['method' => 'GET', 'url' => '/session/:sessionId/screenshot'],
\Facebook\WebDriver\Remote\DriverCommand::TAKE_ELEMENT_SCREENSHOT => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/screenshot'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_SINGLE_TAP => ['method' => 'POST', 'url' => '/session/:sessionId/touch/click'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_DOWN => ['method' => 'POST', 'url' => '/session/:sessionId/touch/down'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_DOUBLE_TAP => ['method' => 'POST', 'url' => '/session/:sessionId/touch/doubleclick'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_FLICK => ['method' => 'POST', 'url' => '/session/:sessionId/touch/flick'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_LONG_PRESS => ['method' => 'POST', 'url' => '/session/:sessionId/touch/longclick'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_MOVE => ['method' => 'POST', 'url' => '/session/:sessionId/touch/move'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_SCROLL => ['method' => 'POST', 'url' => '/session/:sessionId/touch/scroll'],
\Facebook\WebDriver\Remote\DriverCommand::TOUCH_UP => ['method' => 'POST', 'url' => '/session/:sessionId/touch/up'],
\Facebook\WebDriver\Remote\DriverCommand::CUSTOM_COMMAND => [],
]
Tags
$curl
protected
resource
$curl
$isW3cCompliant
protected
bool
$isW3cCompliant
= true
$url
protected
string
$url
$w3cCompliantCommands
protected
static array<string|int, mixed>
$w3cCompliantCommands
= [\Facebook\WebDriver\Remote\DriverCommand::ACCEPT_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/alert/accept'], \Facebook\WebDriver\Remote\DriverCommand::ACTIONS => ['method' => 'POST', 'url' => '/session/:sessionId/actions'], \Facebook\WebDriver\Remote\DriverCommand::DISMISS_ALERT => ['method' => 'POST', 'url' => '/session/:sessionId/alert/dismiss'], \Facebook\WebDriver\Remote\DriverCommand::EXECUTE_ASYNC_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/async'], \Facebook\WebDriver\Remote\DriverCommand::EXECUTE_SCRIPT => ['method' => 'POST', 'url' => '/session/:sessionId/execute/sync'], \Facebook\WebDriver\Remote\DriverCommand::FIND_ELEMENT_FROM_SHADOW_ROOT => ['method' => 'POST', 'url' => '/session/:sessionId/shadow/:id/element'], \Facebook\WebDriver\Remote\DriverCommand::FIND_ELEMENTS_FROM_SHADOW_ROOT => ['method' => 'POST', 'url' => '/session/:sessionId/shadow/:id/elements'], \Facebook\WebDriver\Remote\DriverCommand::FULLSCREEN_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/fullscreen'], \Facebook\WebDriver\Remote\DriverCommand::GET_ACTIVE_ELEMENT => ['method' => 'GET', 'url' => '/session/:sessionId/element/active'], \Facebook\WebDriver\Remote\DriverCommand::GET_ALERT_TEXT => ['method' => 'GET', 'url' => '/session/:sessionId/alert/text'], \Facebook\WebDriver\Remote\DriverCommand::GET_CURRENT_WINDOW_HANDLE => ['method' => 'GET', 'url' => '/session/:sessionId/window'], \Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_LOCATION => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/rect'], \Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_PROPERTY => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/property/:name'], \Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_SHADOW_ROOT => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/shadow'], \Facebook\WebDriver\Remote\DriverCommand::GET_ELEMENT_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/element/:id/rect'], \Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_HANDLES => ['method' => 'GET', 'url' => '/session/:sessionId/window/handles'], \Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_POSITION => ['method' => 'GET', 'url' => '/session/:sessionId/window/rect'], \Facebook\WebDriver\Remote\DriverCommand::GET_WINDOW_SIZE => ['method' => 'GET', 'url' => '/session/:sessionId/window/rect'], \Facebook\WebDriver\Remote\DriverCommand::IMPLICITLY_WAIT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'], \Facebook\WebDriver\Remote\DriverCommand::MAXIMIZE_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/maximize'], \Facebook\WebDriver\Remote\DriverCommand::MINIMIZE_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/minimize'], \Facebook\WebDriver\Remote\DriverCommand::NEW_WINDOW => ['method' => 'POST', 'url' => '/session/:sessionId/window/new'], \Facebook\WebDriver\Remote\DriverCommand::SET_ALERT_VALUE => ['method' => 'POST', 'url' => '/session/:sessionId/alert/text'], \Facebook\WebDriver\Remote\DriverCommand::SET_SCRIPT_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'], \Facebook\WebDriver\Remote\DriverCommand::SET_TIMEOUT => ['method' => 'POST', 'url' => '/session/:sessionId/timeouts'], \Facebook\WebDriver\Remote\DriverCommand::SET_WINDOW_SIZE => ['method' => 'POST', 'url' => '/session/:sessionId/window/rect'], \Facebook\WebDriver\Remote\DriverCommand::SET_WINDOW_POSITION => ['method' => 'POST', 'url' => '/session/:sessionId/window/rect']]
Will be merged with $commands
$service
private
DriverService
$service
Methods
__construct()
public
__construct(DriverService $service) : mixed
Parameters
- $service : DriverService
disableW3cCompliance()
public
disableW3cCompliance() : mixed
execute()
public
execute(WebDriverCommand $command) : WebDriverResponse
Parameters
- $command : WebDriverCommand
Tags
Return values
WebDriverResponsegetAddressOfRemoteServer()
public
getAddressOfRemoteServer() : string
Return values
stringsetConnectionTimeout()
Set timeout for the connect phase
public
setConnectionTimeout(int $timeout_in_ms) : HttpCommandExecutor
Parameters
- $timeout_in_ms : int
-
Timeout in milliseconds
Return values
HttpCommandExecutorsetRequestTimeout()
Set the maximum time of a request
public
setRequestTimeout(int $timeout_in_ms) : HttpCommandExecutor
Parameters
- $timeout_in_ms : int
-
Timeout in milliseconds
Return values
HttpCommandExecutorgetCommandHttpOptions()
protected
getCommandHttpOptions(WebDriverCommand $command) : array<string|int, mixed>
Parameters
- $command : WebDriverCommand