Class Node

  • All Implemented Interfaces:
    org.openqa.selenium.remote.http.HttpHandler, org.openqa.selenium.remote.http.Routable
    Direct Known Subclasses:
    LocalNode, RemoteNode

    public abstract class Node
    extends java.lang.Object
    implements org.openqa.selenium.remote.http.Routable, org.openqa.selenium.remote.http.HttpHandler
    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.
    * /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 
      Modifier and Type Field Description
      protected io.opentracing.Tracer tracer  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Node​(io.opentracing.Tracer tracer, java.util.UUID id, java.net.URI uri)  
    • Field Detail

      • tracer

        protected final io.opentracing.Tracer tracer
    • Constructor Detail

      • Node

        protected Node​(io.opentracing.Tracer tracer,
                       java.util.UUID id,
                       java.net.URI uri)
    • Method Detail

      • getId

        public java.util.UUID getId()
      • getUri

        public java.net.URI getUri()
      • 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
      • stop

        public abstract void stop​(org.openqa.selenium.remote.SessionId id)
                           throws org.openqa.selenium.NoSuchSessionException
        Throws:
        org.openqa.selenium.NoSuchSessionException
      • isSessionOwner

        protected abstract boolean isSessionOwner​(org.openqa.selenium.remote.SessionId id)
      • isSupporting

        public abstract boolean isSupporting​(org.openqa.selenium.Capabilities capabilities)
      • getStatus

        public abstract NodeStatus getStatus()
      • getHealthCheck

        public abstract HealthCheck getHealthCheck()
      • matches

        public boolean matches​(org.openqa.selenium.remote.http.HttpRequest req)
        Specified by:
        matches in interface org.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 interface org.openqa.selenium.remote.http.HttpHandler