From 2985783dff0de72754ae4c8db66e5c6d73d23da4 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Mon, 14 Apr 2025 22:27:34 +0200 Subject: [PATCH] stabilize selenium tests --- .../budgetmaster/integration/selenium/ChartTest.java | 10 ++++++++-- .../budgetmaster/integration/selenium/FilterTest.java | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java index 8d36b734a..5135c878f 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/ChartTest.java @@ -235,9 +235,11 @@ class ChartTest extends SeleniumTestBase assertThat(driver.findElement(By.id("filterActiveBadge")).isDisplayed()).isFalse(); driver.findElement(By.id("chart-filter-container")).click(); + WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("#chart-filter-container .collapsible-header"))); driver.findElement(By.id("section-type")).click(); - WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#section-type .text-default"))); final WebElement checkBox = driver.findElement(By.cssSelector("#section-type .text-default")); @@ -256,8 +258,10 @@ class ChartTest extends SeleniumTestBase driver.get(helper.getUrl() + "/charts"); driver.findElement(By.id("chart-filter-container")).click(); - driver.findElement(By.id("section-type")).click(); WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("#chart-filter-container .collapsible-header"))); + driver.findElement(By.id("section-type")).click(); + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#section-type .text-default"))); final WebElement checkBox = driver.findElement(By.cssSelector("#section-type .text-default")); ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", checkBox); @@ -285,6 +289,8 @@ class ChartTest extends SeleniumTestBase wait.until(ExpectedConditions.attributeContains(By.cssSelector(chartPreviewSelector + " .chart-preview"), "class", "active")); driver.findElement(By.id("chart-filter-container")).click(); + wait = new WebDriverWait(driver, Duration.ofSeconds(5)); + wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("#chart-filter-container .collapsible-header"))); driver.findElement(By.id("section-type")).click(); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#section-type .text-default"))); diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/FilterTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/FilterTest.java index deb5742fd..e57a591ac 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/FilterTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/integration/selenium/FilterTest.java @@ -45,8 +45,8 @@ class FilterTest extends SeleniumTestBase driver.findElement(By.id("section-type")).click(); wait = new WebDriverWait(driver, Duration.ofSeconds(5)); - wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("#section-type .text-default"))); - final WebElement checkBox = driver.findElements(By.cssSelector("#section-type .text-default")).get(0); + wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("#section-type .text-default"))); + final WebElement checkBox = driver.findElements(By.cssSelector("#section-type .text-default")).getFirst(); checkBox.click(); driver.findElement(By.id("buttonApplyFilter")).click(); -- GitLab