Package org.openqa.selenium.grid.node
Class Node
java.lang.Object
org.openqa.selenium.grid.node.Node
- All Implemented Interfaces:
org.openqa.selenium.remote.http.HttpHandler
,org.openqa.selenium.remote.http.Routable
,HasReadyState
- Direct Known Subclasses:
LocalNode
,RemoteNode
public abstract class Node
extends Object
implements HasReadyState, org.openqa.selenium.remote.http.Routable
A place where individual webdriver sessions are running. Those sessions may be in-memory, or only
reachable via localhost and a network. Or they could be something else entirely.
This class responds to the following URLs:
Verb | URL Template | Meaning |
---|---|---|
POST | /se/grid/node/session | Attempts to start a new session for the given node. The posted data should be a
json-serialized Capabilities instance. Returns a serialized Session .
Subclasses of Node are expected to register the session with the
SessionMap . |
GET | /se/grid/node/session/{sessionId} | Finds the Session identified by sessionId and returns the JSON-serialized
form. |
DELETE | /se/grid/node/session/{sessionId} | Stops the Session identified by sessionId . It is expected that this will
also cause the session to removed from the
SessionMap . |
GET | /se/grid/node/owner/{sessionId} | Allows the node to be queried about whether or not it owns the Session identified
by sessionId . This returns a boolean. |
DELETE | /se/grid/node/connection/{sessionId} | Notifies the node about closure of a websocket connection for the Session
identified by sessionId . |
POST | /se/grid/node/connection/{sessionId} | Allows the node to be ask about whether or not new websocket connections are allowed for the Session
identified by sessionId . This returns a boolean. |
* | /session/{sessionId}/* | The request is forwarded to the Session identified by sessionId . When the
Quit command is called, the Session should remove itself from the
SessionMap . |
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract org.openqa.selenium.remote.http.HttpResponse
downloadFile
(org.openqa.selenium.remote.http.HttpRequest req, org.openqa.selenium.remote.SessionId id) abstract void
drain()
org.openqa.selenium.remote.http.HttpResponse
execute
(org.openqa.selenium.remote.http.HttpRequest req) abstract org.openqa.selenium.remote.http.HttpResponse
executeWebDriverCommand
(org.openqa.selenium.remote.http.HttpRequest req) org.openqa.selenium.io.TemporaryFilesystem
getDownloadsFilesystem
(UUID uuid) abstract HealthCheck
getId()
abstract Session
getSession
(org.openqa.selenium.remote.SessionId id) abstract NodeStatus
org.openqa.selenium.io.TemporaryFilesystem
getUploadsFilesystem
(org.openqa.selenium.remote.SessionId id) getUri()
boolean
abstract boolean
isSessionOwner
(org.openqa.selenium.remote.SessionId id) abstract boolean
isSupporting
(org.openqa.selenium.Capabilities capabilities) boolean
matches
(org.openqa.selenium.remote.http.HttpRequest req) abstract org.openqa.selenium.internal.Either<org.openqa.selenium.WebDriverException,
CreateSessionResponse> newSession
(CreateSessionRequest sessionRequest) abstract void
releaseConnection
(org.openqa.selenium.remote.SessionId id) abstract void
stop
(org.openqa.selenium.remote.SessionId id) abstract boolean
tryAcquireConnection
(org.openqa.selenium.remote.SessionId id) abstract org.openqa.selenium.remote.http.HttpResponse
uploadFile
(org.openqa.selenium.remote.http.HttpRequest req, org.openqa.selenium.remote.SessionId id) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.openqa.selenium.status.HasReadyState
isReady
Methods inherited from interface org.openqa.selenium.remote.http.Routable
with
-
Field Details
-
tracer
protected final org.openqa.selenium.remote.tracing.Tracer tracer -
draining
protected boolean draining
-
-
Constructor Details
-
Node
-
-
Method Details
-
getId
-
getUri
-
getNodeVersion
-
getOsInfo
-
newSession
public abstract org.openqa.selenium.internal.Either<org.openqa.selenium.WebDriverException,CreateSessionResponse> newSession(CreateSessionRequest sessionRequest) -
executeWebDriverCommand
public abstract org.openqa.selenium.remote.http.HttpResponse executeWebDriverCommand(org.openqa.selenium.remote.http.HttpRequest req) -
getSession
public abstract Session getSession(org.openqa.selenium.remote.SessionId id) throws org.openqa.selenium.NoSuchSessionException - Throws:
org.openqa.selenium.NoSuchSessionException
-
getUploadsFilesystem
public org.openqa.selenium.io.TemporaryFilesystem getUploadsFilesystem(org.openqa.selenium.remote.SessionId id) throws IOException - Throws:
IOException
-
getDownloadsFilesystem
public org.openqa.selenium.io.TemporaryFilesystem getDownloadsFilesystem(UUID uuid) throws IOException - Throws:
IOException
-
uploadFile
public abstract org.openqa.selenium.remote.http.HttpResponse uploadFile(org.openqa.selenium.remote.http.HttpRequest req, org.openqa.selenium.remote.SessionId id) -
downloadFile
public abstract org.openqa.selenium.remote.http.HttpResponse downloadFile(org.openqa.selenium.remote.http.HttpRequest req, org.openqa.selenium.remote.SessionId id) -
stop
public abstract void stop(org.openqa.selenium.remote.SessionId id) throws org.openqa.selenium.NoSuchSessionException - Throws:
org.openqa.selenium.NoSuchSessionException
-
isSessionOwner
public abstract boolean isSessionOwner(org.openqa.selenium.remote.SessionId id) -
tryAcquireConnection
public abstract boolean tryAcquireConnection(org.openqa.selenium.remote.SessionId id) -
releaseConnection
public abstract void releaseConnection(org.openqa.selenium.remote.SessionId id) -
isSupporting
public abstract boolean isSupporting(org.openqa.selenium.Capabilities capabilities) -
getStatus
-
getHealthCheck
-
getSessionTimeout
-
isDraining
public boolean isDraining() -
drain
public abstract void drain() -
matches
public boolean matches(org.openqa.selenium.remote.http.HttpRequest req) - Specified by:
matches
in interfaceorg.openqa.selenium.remote.http.Routable
-
execute
public org.openqa.selenium.remote.http.HttpResponse execute(org.openqa.selenium.remote.http.HttpRequest req) - Specified by:
execute
in interfaceorg.openqa.selenium.remote.http.HttpHandler
-