From 429489349688ce452f124a691c7542d2ca2177d1 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Thu, 5 Aug 2021 19:00:37 +0200 Subject: feat: handle the callback of the faculty --- src/browser/mod.rs | 16 ++++++++++++++++ src/browser/web_browser.rs | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) (limited to 'src/browser') diff --git a/src/browser/mod.rs b/src/browser/mod.rs index 7205f27..1675595 100644 --- a/src/browser/mod.rs +++ b/src/browser/mod.rs @@ -34,3 +34,19 @@ pub async unsafe fn get_faculties() -> WebDriverResult WebDriverResult { + if let Some(driver) = &WEB_BROWSER { + let result = driver + .select_option_from_list(klass, property_name, property_value) + .await?; + + return Ok(result); + } + + Ok(false) +} diff --git a/src/browser/web_browser.rs b/src/browser/web_browser.rs index c7497cf..ffbdc13 100644 --- a/src/browser/web_browser.rs +++ b/src/browser/web_browser.rs @@ -114,6 +114,27 @@ impl Browser { Ok(None) } + + /// Select an option from a list of select elements + pub async fn select_option_from_list( + &self, + klass: &str, + property_name: &str, + property_value: &str, + ) -> WebDriverResult { + if let Some(_d) = &self.driver { + _d.find_element(By::Css( + &format!("li.{}[{}='{}']", klass, property_name, property_value).to_owned()[..], + )) + .await? + .click() + .await?; + + return Ok(true); + } + + Ok(false) + } } /// The static unsafe variable used to open a web browser -- cgit v1.2.3-18-g5258