From 1c06d6f0fe55768a76ce1359262dd4d245798328 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Wed, 20 Jan 2021 00:51:44 +0100 Subject: extreload: Try parsing `GetTargets` response Tried to parse the response from the `GetTargets` message, but ended up with this error: thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error("unknown variant `iframe`, expected one of `page`, `background_page`, `service_worker`, `browser`, `other`", line: 0, column: 0)', /Users/tw/.cargo/registry/src/github.com-1ecc6299db9ec823/headless_chrome-0.9.0/src/protocol/mod.rs:90:70 Looks like the `headless_chrome` library doesn't include "iframe" as a `TargetType`: https://docs.rs/headless_chrome/0.9.0/headless_chrome/protocol/target/enum.TargetType.html Will have to modify the library, use a different library, or write my own types to serialize & deserialize. --- extreload/src/main.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/extreload/src/main.rs b/extreload/src/main.rs index 73b26e5..d37acd8 100644 --- a/extreload/src/main.rs +++ b/extreload/src/main.rs @@ -1,5 +1,5 @@ use headless_chrome; -use headless_chrome::protocol::Method; +use headless_chrome::protocol::{Method, parse_raw_message, parse_response}; use serde_json; use tungstenite::{connect, Message}; use url::Url; @@ -18,5 +18,15 @@ fn main() { loop { let msg = socket.read_message().expect("Error reading message"); println!("Received: {}", msg); + + match parse_raw_message(&msg.into_text().unwrap()).unwrap() { + headless_chrome::protocol::Message::Event(_event) => (), + headless_chrome::protocol::Message::Response(response) => { + let message: headless_chrome::protocol::target::methods::GetTargetsReturnObject = parse_response(response).unwrap(); + + dbg!(message); + }, + headless_chrome::protocol::Message::ConnectionShutdown => (), + }; } } -- cgit v1.2.3