From 05ae5be02f0a6084a511798688d90847cd84ed26 Mon Sep 17 00:00:00 2001 From: Sebastian Hugentobler Date: Tue, 25 Jun 2024 14:15:10 +0200 Subject: [PATCH] properly wait for reload after login --- nzz.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/nzz.js b/nzz.js index 7aab650..37d9ea1 100755 --- a/nzz.js +++ b/nzz.js @@ -18,6 +18,8 @@ const WAIT_TIMEOUT = 2000; const TIMEOUT_MSG = `Timeout after ${WAIT_TIMEOUT / 1000} seconds.`; const SEARCH_WAIT_TIMEOUT = 5000; const SEARCH_TIMEOUT_MSG = `Timeout after ${SEARCH_WAIT_TIMEOUT / 1000} seconds.`; +const USER_AGENT = + "Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0"; Date.prototype.isoDate = function () { return `${this.getFullYear()}-${String(this.getMonth() + 1).padStart(2, "0")}-${String(this.getDate()).padStart(2, "0")}`; @@ -153,6 +155,15 @@ async function login(driver, user, password) { await driver.wait(until.elementIsVisible(submitButton), WAIT_TIMEOUT); await submitButton.click(); await driver.switchTo().defaultContent(); + + const loginMenu = await driver.wait( + until.elementLocated( + By.css(".fup-login-open.fup-button.fup-s-menu-login-open"), + ), + WAIT_TIMEOUT, + TIMEOUT_MSG, + ); + await driver.wait(until.elementIsVisible(loginMenu), WAIT_TIMEOUT); } /** @@ -169,7 +180,7 @@ async function download(driver) { await menu.click(); const download = await driver.wait( - until.elementLocated(By.css(".fup-s-menu-download-edition")), + until.elementLocated(By.css(".fup-s-menu-download-edition-confirmation")), WAIT_TIMEOUT, TIMEOUT_MSG, ); @@ -247,6 +258,7 @@ async function run(from, to, user, password, outDir) { const fxOptions = new fx.Options() // .addArguments("-headless") .setPreference("pdfjs.disabled", true) + .setPreference("general.useragent.override", USER_AGENT) .setPreference("browser.helperApps.neverAsk.openFile", "application/pdf") .setPreference("browser.download.folderList", 2) .setPreference("browser.download.manager.showWhenStartingout", false)