Class Target


  • public class Target
    extends java.lang.Object
    Class created by Automatic Code-Generator.
    This class was built using the Chrome Remote Dev-Tools A.P.I., which is specified by two JSON-RPC Files. These files were obtained from the Chrome Dev Tools Protocol Git Hub Page, which has a "Tip of Tree" (the latest) API-Specification Page Here: JSON-RPC Protocol Specification.

    JSON-Viewable Google-API:
    These files may be viewed here: browser_protocol.json and js_protocol.json.
    These files were converted into this Java-Browser (CDT) Library; they are a Java-Alternative to the Node.js implementation.

    HTML-Viewable API:
    In addition to this Class-Library, these files were also converted to a simple HTML Page, which may be browsed here: Browser API Web-Page

    Node.js RDP-API Implementation:
    You may read about the Node.js Chrome Remote Interface on the Node.js Package Manager Web-Site: NPM
    Supports additional targets discovery and allows to attach to them.

    This class is intended to be used with a Headless Browser

    These methods have been tested, to some degree, using Google Chrome. In order to use this class you must start a web-browser instance and make a connection to the browser using a Remote Debugging Port. The initializations may be accomplished using class BRDPC (Browser Remote Debug Protocol Connection).

    Google-Chrome was used during the development process of the classes in this particular package. Note that, lately, it has been asserted Microsoft has switched to using the Chrome-Engine for its Microsoft Edge Browser Internal Code-Base. Therefore, there may limited support / functionality when running the methods in this class with Microsoft-Edge. There is the possibility these will work with Opera & Safari.

    Check whether the your Web-Browser will allow itself to be driven by the Web-Socket RDP-Port 9223.


    Foreign Function API:
    Every one of the methods that reside in this class are designed to do nothing more than:

    1. Accept Parameters from the User, and "Marshall Them" into a Valid JSON-Request
    2. Transmit the Marshalled Request-JSON to a Headless Web-Browser over a Web-Socket RDP Connection
    3. Receive BOTH that Method's Results AND any Browser Event-Firings from the Web-Socket
    4. Parse JSON Method-Results and Browser-Event Firings, and Subsequently Convert them to Standard Java-Types
    5. Report these Method-Results and Browser-Events to the User via an User-Registered Event-Listener or a Promise Object


    Java-HTML Difference:
    Unlike the bulk of the Java HTML JAR Library, there is very little native Java-Code, and very little testing that may be done on any of the classes & methods in this package. The code inside these classes does nothing more than marshall-and-unmarshall Java-Types into Json-Requests (and vice-versa). The Java-Script & Browser modules inside of a Google-Chrome instance are, theoretically, handling these requests, and returning their results (or events) over the Web-Socket Connection.

    It has been asserted (by Google Chrome Developers) that some of these methods are only "partially working" or "experimental".



    Stateless Class:
    This class neither contains any program-state, nor can it be instantiated. The @StaticFunctional Annotation may also be called 'The Spaghetti Report'. Static-Functional classes are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's @Stateless Annotation.

    • 1 Constructor(s), 1 declared private, zero-argument constructor
    • 17 Method(s), 17 declared static
    • 5 Field(s), 5 declared static, 4 declared final
    • Fields excused from final modifier (with explanation):
      Field 'counter' is not final. Reason: CONFIGURATION


    • Nested Class Summary

       
      Type Classes: Target Domain Types
      Modifier and Type Inner-Class
      static class  Target.RemoteLocation
      [No Description Provided by Google]

      EXPERIMENTAL
      static class  Target.TargetInfo
      [No Description Provided by Google]
       
      Event Classes: Target Domain Events
      Modifier and Type Inner-Class
      static class  Target.attachedToTarget
      Issued when attached to target because of auto-attach or attachToTarget command.
      static class  Target.detachedFromTarget
      Issued when detached from target for any reason (including detachFromTarget command).
      static class  Target.receivedMessageFromTarget
      Notifies about a new protocol message received from the session (as reported in attachedToTarget event).
      static class  Target.targetCrashed
      Issued when a target has crashed.
      static class  Target.targetCreated
      Issued when a possible inspection target is created.
      static class  Target.targetDestroyed
      Issued when a target is destroyed.
      static class  Target.targetInfoChanged
      Issued when some information about a target has changed.
    • Method Summary

       
      Target Domain Commands
      Script Returns Modifier and Type Method
      NONE (void) static Script<> activateTarget​(String targetId)
      Activates (focuses) the target.
      String static Script<> attachToBrowserTarget()
      Attaches to the browser target, only uses flat sessionId mode.
      String static Script<> attachToTarget​(String targetId, Boolean flatten)
      Attaches to the target with given id.
      NONE (void) static Script<> autoAttachRelated​(String targetId, boolean waitForDebuggerOnStart)
      Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported through attachedToTarget.
      Boolean static Script<> closeTarget​(String targetId)
      Closes the target.
      String static Script<> createBrowserContext​(Boolean disposeOnDetach, String proxyServer, String proxyBypassList)
      Creates a new empty BrowserContext.
      String static Script<> createTarget​(String url, Integer width, Integer height, String browserContextId, Boolean enableBeginFrameControl, Boolean newWindow, Boolean background)
      Creates a new page.
      NONE (void) static Script<> detachFromTarget​(String sessionId, String targetId)
      Detaches session with given id.
      NONE (void) static Script<> disposeBrowserContext​(String browserContextId)
      Deletes a BrowserContext.
      NONE (void) static Script<> exposeDevToolsProtocol​(String targetId, String bindingName)
      Inject object to the target's main frame that provides a communication channel with browser target.
      String[] static Script<> getBrowserContexts()
      Returns all browser contexts created with Target.createBrowserContext method.
      Target.TargetInfo static Script<> getTargetInfo​(String targetId)
      Returns information about a target.
      Target.TargetInfo[] static Script<> getTargets()
      Retrieves a list of available targets.
      NONE (void) static Script<> sendMessageToTarget​(String message, String sessionId, String targetId)
      Sends protocol message over session with given id.
      NONE (void) static Script<> setAutoAttach​(boolean autoAttach, boolean waitForDebuggerOnStart, Boolean flatten)
      Controls whether to automatically attach to new targets which are considered to be related to this one.
      NONE (void) static Script<> setDiscoverTargets​(boolean discover)
      Controls whether to discover available targets and notify via targetCreated/targetInfoChanged/targetDestroyed events.
      NONE (void) static Script<> setRemoteLocations​(Target.RemoteLocation[] locations)
      Enables target discovery for the specified locations, when setDiscoverTargets was set to true.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • activateTarget

        🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0activateTarget​
                    (java.lang.String targetId)
        
        Activates (focuses) the target.
        Parameters:
        targetId - -
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • attachToTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> attachToTarget​
                    (java.lang.String targetId,
                     java.lang.Boolean flatten)
        
        Attaches to the target with given id.
        Parameters:
        targetId - -
        flatten - Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325.
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (sessionId)
          Id assigned to the session.
      • attachToBrowserTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> attachToBrowserTarget
                    ()
        
        Attaches to the browser target, only uses flat sessionId mode.
        EXPERIMENTAL
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (sessionId)
          Id assigned to the session.
      • closeTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.Boolean> closeTarget​
                    (java.lang.String targetId)
        
        Closes the target. If the target is a page that gets closed too.
        Parameters:
        targetId - -
        Returns:
        An instance of Script<String, JsonObject, Boolean>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, Boolean> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • Boolean (success)
          Always set to true. If an error occurs, the response indicates protocol error.
      • exposeDevToolsProtocol

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0exposeDevToolsProtocol​
                    (java.lang.String targetId,
                     java.lang.String bindingName)
        
        Inject object to the target's main frame that provides a communication channel with browser target. Injected object will be available as window[bindingName]. The object has the follwing API: - binding.send(json) - a method to send messages over the remote debugging protocol - binding.onmessage = json => handleMessage(json) - a callback that will be called for the protocol notifications and command responses.
        EXPERIMENTAL
        Parameters:
        targetId - -
        bindingName - Binding name, 'cdp' if not specified.
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • createBrowserContext

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> createBrowserContext​
                    (java.lang.Boolean disposeOnDetach,
                     java.lang.String proxyServer,
                     java.lang.String proxyBypassList)
        
        Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than one.
        EXPERIMENTAL
        Parameters:
        disposeOnDetach - If specified, disposes this context when debugging session disconnects.
        OPTIONAL
        proxyServer - Proxy server, similar to the one passed to --proxy-server
        OPTIONAL
        proxyBypassList - Proxy bypass list, similar to the one passed to --proxy-bypass-list
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (browserContextId)
          The id of the context created.
      • getBrowserContexts

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String[]> getBrowserContexts
                    ()
        
        Returns all browser contexts created with Target.createBrowserContext method.
        EXPERIMENTAL
        Returns:
        An instance of Script<String, JsonObject, String[]>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String[]> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String[] (browserContextIds)
          An array of browser context ids.
      • createTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​java.lang.String> createTarget​
                    (java.lang.String url,
                     java.lang.Integer width,
                     java.lang.Integer height,
                     java.lang.String browserContextId,
                     java.lang.Boolean enableBeginFrameControl,
                     java.lang.Boolean newWindow,
                     java.lang.Boolean background)
        
        Creates a new page.
        Parameters:
        url - The initial URL the page will be navigated to. An empty string indicates about:blank.
        width - Frame width in DIP (headless chrome only).
        OPTIONAL
        height - Frame height in DIP (headless chrome only).
        OPTIONAL
        browserContextId - The browser context to create the page in.
        OPTIONAL
        EXPERIMENTAL
        enableBeginFrameControl - Whether BeginFrames for this target will be controlled via DevTools (headless chrome only, not supported on MacOS yet, false by default).
        OPTIONAL
        EXPERIMENTAL
        newWindow - Whether to create a new Window or Tab (chrome-only, false by default).
        OPTIONAL
        background - Whether to create the target in background or foreground (chrome-only, false by default).
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, String>

        This script may be executed, using Script.exec(), and afterwards, a Promise<JsonObject, String> will be returned.

        Finally, the Promise may be awaited, using Promise.await(), and the returned result of this Browser Function may may be retrieved.

        This Browser Function returns

        • String (targetId)
          The id of the page opened.
      • detachFromTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0detachFromTarget​
                    (java.lang.String sessionId,
                     java.lang.String targetId)
        
        Detaches session with given id.
        Parameters:
        sessionId - Session to detach.
        OPTIONAL
        targetId - Deprecated.
        OPTIONAL
        DEPRECATED
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • disposeBrowserContext

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0disposeBrowserContext​
                    (java.lang.String browserContextId)
        
        Deletes a BrowserContext. All the belonging pages will be closed without calling their beforeunload hooks.
        EXPERIMENTAL
        Parameters:
        browserContextId - -
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • sendMessageToTarget

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0sendMessageToTarget​
                    (java.lang.String message,
                     java.lang.String sessionId,
                     java.lang.String targetId)
        
        Sends protocol message over session with given id. Consider using flat mode instead; see commands attachToTarget, setAutoAttach, and crbug.com/991325.
        DEPRECATED
        Parameters:
        message - -
        sessionId - Identifier of the session.
        OPTIONAL
        targetId - Deprecated.
        OPTIONAL
        DEPRECATED
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • setAutoAttach

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0setAutoAttach​
                    (boolean autoAttach,
                     boolean waitForDebuggerOnStart,
                     java.lang.Boolean flatten)
        
        Controls whether to automatically attach to new targets which are considered to be related to this one. When turned on, attaches to all existing related targets as well. When turned off, automatically detaches from all currently attached targets. This also clears all targets added by autoAttachRelated from the list of targets to watch for creation of related targets.
        EXPERIMENTAL
        Parameters:
        autoAttach - Whether to auto-attach to related targets.
        waitForDebuggerOnStart - Whether to pause new targets when attaching to them. Use RunTime.runIfWaitingForDebugger to run paused targets.
        flatten - Enables "flat" access to the session via specifying sessionId attribute in the commands. We plan to make this the default, deprecate non-flattened mode, and eventually retire it. See crbug.com/991325.
        OPTIONAL
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • autoAttachRelated

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0autoAttachRelated​
                    (java.lang.String targetId,
                     boolean waitForDebuggerOnStart)
        
        Adds the specified target to the list of targets that will be monitored for any related target creation (such as child frames, child workers and new versions of service worker) and reported through attachedToTarget. The specified target is also auto-attached. This cancels the effect of any previous setAutoAttach and is also cancelled by subsequent setAutoAttach. Only available at the Browser target.
        EXPERIMENTAL
        Parameters:
        targetId - -
        waitForDebuggerOnStart - Whether to pause new targets when attaching to them. Use RunTime.runIfWaitingForDebugger to run paused targets.
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • setDiscoverTargets

        🡅  🡇     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0setDiscoverTargets​
                    (boolean discover)
        
        Controls whether to discover available targets and notify via targetCreated/targetInfoChanged/targetDestroyed events.
        Parameters:
        discover - Whether to discover available targets.
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.
      • setRemoteLocations

        🡅     🗕  🗗  🗖
        public static Script<java.lang.String,​JsonObject,​Ret0setRemoteLocations​
                    (Target.RemoteLocation[] locations)
        
        Enables target discovery for the specified locations, when setDiscoverTargets was set to true.
        EXPERIMENTAL
        Parameters:
        locations - List of remote locations.
        Returns:
        An instance of Script<String, JsonObject, Ret0>

        This Script instance must be executed before the browser receives the invocation-request.

        This Browser-Function does not have a return-value. You may choose to await the Promise<JsonObject, Ret0 > to ensure the Browser Function has run to completion.