From 7f3f9f0bf18ba9c48b7b62d4825a2932b6b0c68d Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Thu, 29 Jul 2021 16:53:42 +0200 Subject: feat: make login --- src/browser.rs | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/browser.rs (limited to 'src/browser.rs') diff --git a/src/browser.rs b/src/browser.rs new file mode 100644 index 0000000..4c06aeb --- /dev/null +++ b/src/browser.rs @@ -0,0 +1,41 @@ +use crate::config::Config; +use std::{thread, time}; +use thirtyfour::prelude::{By, WebDriverResult}; +use thirtyfour::{FirefoxCapabilities, WebDriver, WebDriverCommands}; + +pub async fn init() -> WebDriver { + let driver = match WebDriver::new("http://localhost:4444", FirefoxCapabilities::new()).await { + Ok(driver) => driver, + Err(e) => { + panic!(e); + } + }; + + return driver; +} + +pub async fn login(driver: &WebDriver, credentials: &Config) -> WebDriverResult<()> { + driver + .get("https://studenti.smartedu.unict.it/WorkFlow2011/Logon/Logon.aspx") + .await?; + + let cf_input = driver + .find_element(By::Name("ctl01$contents$UserName")) + .await?; + cf_input.send_keys(&credentials.cf).await?; + + let psw_input = driver + .find_element(By::Name("ctl01$contents$UserPassword")) + .await?; + psw_input.send_keys(&credentials.password).await?; + + thread::sleep(time::Duration::from_millis(1000)); + + driver + .find_element(By::Name("ctl01$contents$LogonButton")) + .await? + .click() + .await?; + + Ok(()) +} -- cgit v1.2.3-18-g5258