selenium_rs/
element_structs.rs1use element::Element;
2use reqwest;
3
4#[derive(Deserialize)]
5pub struct SelectedResponse {
6 pub value: bool,
7}
8
9#[allow(dead_code)]
10#[derive(Deserialize)]
11pub struct ElementResponse {
12 #[serde(rename = "sessionId")]
13 session_id: String,
14 status: i32,
15 value: ElemValue,
16}
17
18#[allow(dead_code)]
19#[derive(Deserialize)]
20pub struct ElementsResponse {
21 #[serde(rename = "sessionId")]
22 session_id: String,
23 status: i32,
24 value: Vec<ElemValue>,
25}
26
27#[derive(Deserialize)]
28struct ElemValue {
29 #[serde(rename = "ELEMENT")]
30 element_id: String,
31}
32
33impl<'a> ElementResponse {
34 pub fn parse_into_element(self, client: &'a reqwest::Client) -> Element<'a> {
35 Element::new(self.value.element_id, self.session_id, client)
36 }
37}
38
39impl<'a> ElementsResponse {
40 pub fn parse_into_elements(self, client: &'a reqwest::Client) -> Vec<Element<'a>> {
41 let session_id = self.session_id;
42 self.value.into_iter().map(|value| Element::new(value.element_id, session_id.clone(), client)).collect()
43 }
44}
45
46#[allow(dead_code)]
47#[derive(Deserialize)]
48pub struct AttributeResponse {
49 #[serde(rename = "sessionId")]
50 session_id: String,
51 pub value: String,
52}
53
54#[derive(Serialize)]
55pub struct ValueRequest<'a> {
56 value: Vec<&'a str>,
57}
58
59impl<'a> ValueRequest<'a> {
60 pub fn new(text: &'a str) -> ValueRequest<'a> {
61 ValueRequest { value: vec![text] }
62 }
63}
64
65#[allow(dead_code)]
66#[derive(Deserialize)]
67pub struct ExecuteScriptResponse<T> {
68 #[serde(rename = "sessionId")]
69 session_id: String,
70 status: i32,
71 pub value: T,
72}