diff options
author | Teddy Wing | 2021-01-20 00:51:44 +0100 |
---|---|---|
committer | Teddy Wing | 2021-01-20 00:51:44 +0100 |
commit | 1c06d6f0fe55768a76ce1359262dd4d245798328 (patch) | |
tree | 30b1fca76c32d500c9689add7d12497e1a016512 | |
parent | 555d726a59ddf6206e650b226b88f397f5f9f00a (diff) | |
download | extreload-1c06d6f0fe55768a76ce1359262dd4d245798328.tar.bz2 |
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.
-rw-r--r-- | extreload/src/main.rs | 12 |
1 files changed, 11 insertions, 1 deletions
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 => (), + }; } } |