class ChromeDPClient
A Chrome Devtools Protocol client.
It provides access to the basic HTTP endpoints exposed by the Chrome browser, as well as web socket connections to the browser and its targets to make use of the full Chrome Devtools Protocol API.
Chrome doesn't accept a Host header that is not an IP nor localhost, but in some environments it might be hard
to provide this (e.g. docker services in a docker swarm, communicating using service names).
To work around this problem, simply set overrideHostHeader to true.
This overrides the Host header to "localhost" in the HTTP requests to the Chrome debugger to make it happy, and
also replaces the host in subsequent web socket URLs (returned by Chrome) by the initial host provided in
remoteDebugUrl.
This is necessary because Chrome uses the Host header to build these URLs, and it would be incorrect to keep this.
<init> |
A Chrome Devtools Protocol client. ChromeDPClient(remoteDebugUrl: String = "http://localhost:9222", webSocketClient: WebSocketClient = DEFAULT_WEBSOCKET_CLIENT, overrideHostHeader: Boolean = false, configureHttpClient: HttpClientConfig<*>.() -> Unit = {}) |
activateTab |
Brings a page into the foreground (activate a tab). suspend fun activateTab(targetId: String): String |
closeAllTargets |
Closes all targets. suspend fun closeAllTargets(): Unit |
closeTab |
Closes the target page identified by targetId. suspend fun closeTab(targetId: String): String |
newTab |
Opens a new tab. Responds with the websocket target data for the new tab. suspend fun |
protocolJson |
The current devtools protocol definition, as a JSON string. suspend fun protocolJson(): String |
targets |
A list of all available websocket targets (e.g. browser tabs). suspend fun targets(): List<ChromeDPTarget> |
version |
Browser version metadata. suspend fun version(): ChromeVersion |
webSocket |
Opens a web socket connection to interact with the browser target (root session, without session ID). suspend fun webSocket(): ChromeBrowserSession |