All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openqa.selenium.devtools.v123.tracing.Tracing Maven / Gradle / Ivy

Go to download

Selenium automates browsers. That's it! What you do with that power is entirely up to you.

There is a newer version: 4.21.0
Show newest version
package org.openqa.selenium.devtools.v123.tracing;

import org.openqa.selenium.Beta;
import org.openqa.selenium.devtools.Command;
import org.openqa.selenium.devtools.Event;
import org.openqa.selenium.devtools.ConverterFunctions;
import java.util.Map;
import java.util.LinkedHashMap;
import org.openqa.selenium.json.JsonInput;

public class Tracing {

    /**
     * Stop trace events collection.
     */
    public static Command end() {
        LinkedHashMap params = new LinkedHashMap<>();
        return new Command<>("Tracing.end", Map.copyOf(params));
    }

    /**
     * Gets supported tracing categories.
     */
    @Beta()
    public static Command> getCategories() {
        LinkedHashMap params = new LinkedHashMap<>();
        return new Command<>("Tracing.getCategories", Map.copyOf(params), ConverterFunctions.map("categories", input -> input.readArray(java.lang.String.class)));
    }

    /**
     * Record a clock sync marker in the trace.
     */
    @Beta()
    public static Command recordClockSyncMarker(java.lang.String syncId) {
        java.util.Objects.requireNonNull(syncId, "syncId is required");
        LinkedHashMap params = new LinkedHashMap<>();
        params.put("syncId", syncId);
        return new Command<>("Tracing.recordClockSyncMarker", Map.copyOf(params));
    }

    public static class RequestMemoryDumpResponse {

        private final java.lang.String dumpGuid;

        private final java.lang.Boolean success;

        public RequestMemoryDumpResponse(java.lang.String dumpGuid, java.lang.Boolean success) {
            this.dumpGuid = java.util.Objects.requireNonNull(dumpGuid, "dumpGuid is required");
            this.success = java.util.Objects.requireNonNull(success, "success is required");
        }

        /**
         * GUID of the resulting global memory dump.
         */
        public java.lang.String getDumpGuid() {
            return dumpGuid;
        }

        /**
         * True iff the global memory dump succeeded.
         */
        public java.lang.Boolean getSuccess() {
            return success;
        }

        private static RequestMemoryDumpResponse fromJson(JsonInput input) {
            java.lang.String dumpGuid = null;
            java.lang.Boolean success = false;
            input.beginObject();
            while (input.hasNext()) {
                switch(input.nextName()) {
                    case "dumpGuid":
                        dumpGuid = input.nextString();
                        break;
                    case "success":
                        success = input.nextBoolean();
                        break;
                    default:
                        input.skipValue();
                        break;
                }
            }
            input.endObject();
            return new RequestMemoryDumpResponse(dumpGuid, success);
        }
    }

    /**
     * Request a global memory dump.
     */
    @Beta()
    public static Command requestMemoryDump(java.util.Optional deterministic, java.util.Optional levelOfDetail) {
        LinkedHashMap params = new LinkedHashMap<>();
        deterministic.ifPresent(p -> params.put("deterministic", p));
        levelOfDetail.ifPresent(p -> params.put("levelOfDetail", p));
        return new Command<>("Tracing.requestMemoryDump", Map.copyOf(params), input -> input.read(org.openqa.selenium.devtools.v123.tracing.Tracing.RequestMemoryDumpResponse.class));
    }

    public enum StartTransferMode {

        REPORTEVENTS("ReportEvents"), RETURNASSTREAM("ReturnAsStream");

        private String value;

        StartTransferMode(String value) {
            this.value = value;
        }

        public static StartTransferMode fromString(String s) {
            return java.util.Arrays.stream(StartTransferMode.values()).filter(rs -> rs.value.equalsIgnoreCase(s)).findFirst().orElseThrow(() -> new org.openqa.selenium.devtools.DevToolsException("Given value " + s + " is not found within StartTransferMode "));
        }

        public String toString() {
            return value;
        }

        public String toJson() {
            return value;
        }

        private static StartTransferMode fromJson(JsonInput input) {
            return fromString(input.nextString());
        }
    }

    /**
     * Start trace events collection.
     */
    public static Command start(java.util.Optional categories, java.util.Optional options, java.util.Optional bufferUsageReportingInterval, java.util.Optional transferMode, java.util.Optional streamFormat, java.util.Optional streamCompression, java.util.Optional traceConfig, java.util.Optional perfettoConfig, java.util.Optional tracingBackend) {
        LinkedHashMap params = new LinkedHashMap<>();
        categories.ifPresent(p -> params.put("categories", p));
        options.ifPresent(p -> params.put("options", p));
        bufferUsageReportingInterval.ifPresent(p -> params.put("bufferUsageReportingInterval", p));
        transferMode.ifPresent(p -> params.put("transferMode", p));
        streamFormat.ifPresent(p -> params.put("streamFormat", p));
        streamCompression.ifPresent(p -> params.put("streamCompression", p));
        traceConfig.ifPresent(p -> params.put("traceConfig", p));
        perfettoConfig.ifPresent(p -> params.put("perfettoConfig", p));
        tracingBackend.ifPresent(p -> params.put("tracingBackend", p));
        return new Command<>("Tracing.start", Map.copyOf(params));
    }

    public static Event bufferUsage() {
        return new Event<>("Tracing.bufferUsage", input -> input.read(org.openqa.selenium.devtools.v123.tracing.model.BufferUsage.class));
    }

    public static Event>> dataCollected() {
        return new Event<>("Tracing.dataCollected", ConverterFunctions.map("value", input -> input.readArray(java.util.Map.class)));
    }

    public static Event tracingComplete() {
        return new Event<>("Tracing.tracingComplete", input -> input.read(org.openqa.selenium.devtools.v123.tracing.model.TracingComplete.class));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy