Skip to main content

selenium_rs/
element_structs.rs

1use 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}