From 4588d5b434f4a783fce8bc2c6cf6a42c1f2f00e2 Mon Sep 17 00:00:00 2001 From: Sebastian Hugentobler Date: Tue, 1 Oct 2024 15:43:11 +0200 Subject: [PATCH] cookie notice seems to be optional --- Cargo.lock | 2 +- cookie/Cargo.toml | 2 +- cookie/src/lib.rs | 16 ++++++++++------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 74195a4..582a86a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -910,7 +910,7 @@ dependencies = [ [[package]] name = "nzz-cookie" -version = "0.2.0" +version = "0.2.1" dependencies = [ "anyhow", "clap", diff --git a/cookie/Cargo.toml b/cookie/Cargo.toml index 3a979e1..ff2c252 100644 --- a/cookie/Cargo.toml +++ b/cookie/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nzz-cookie" -version = "0.2.0" +version = "0.2.1" edition = "2021" license = { workspace = true } authors = { workspace = true } diff --git a/cookie/src/lib.rs b/cookie/src/lib.rs index 2105f18..3b2ec27 100644 --- a/cookie/src/lib.rs +++ b/cookie/src/lib.rs @@ -22,7 +22,7 @@ pub async fn run(args: Config, pw: &str) -> Result<()> { let (stop_tx, stop_rx) = oneshot::channel(); let driver_handle = geckodriver::run(stop_rx).await?; - let driver_args = json!({ "moz:firefoxOptions": {"args": ["-headless"]} }); + let driver_args = json!({ "moz:firefoxOptions": {"args": []} }); let client = ClientBuilder::native() .capabilities(driver_args.as_object().unwrap().clone()) @@ -32,12 +32,16 @@ pub async fn run(args: Config, pw: &str) -> Result<()> { client.goto(LOGIN_URL).await?; sleep(Duration::from_millis(500)).await; - let fu_open_button: Element = element_from_css(&client, ".cmpboxbtncustom").await?; - fu_open_button.click().await?; - let fu_button: Element = element_from_css(&client, ".cmpboxbtn.cmpboxbtnyes.cmpboxbtnyescustomchoices.cmptxt_btn_save").await?; - sleep(Duration::from_millis(500)).await; - fu_button.click().await?; + // Sometimes cookie notice has to bee accepted, not sure when though + if client.find(Locator::Css(".cmpboxbtncustom")).await.is_ok() { + let fu_open_button: Element = element_from_css(&client, ".cmpboxbtncustom").await?; + fu_open_button.click().await?; + + let fu_button: Element = element_from_css(&client, ".cmpboxbtn.cmpboxbtnyes.cmpboxbtnyescustomchoices.cmptxt_btn_save").await?; + sleep(Duration::from_millis(500)).await; + fu_button.click().await?; + } let login_button: Element = element_from_css(&client, ".fup-menu-login-container").await?;