From 6f6602809fbbf028e4d5247efd2b4e78f7c4785a Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Mon, 9 Dec 2024 11:14:32 -0800 Subject: [PATCH 1/2] Decode reportId to avoid double-encoding later --- src/org/labkey/test/WebDriverWrapper.java | 8 +++++++- src/org/labkey/test/pages/reports/ScriptReportPage.java | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index 4df00cfd38..99d912718e 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -22,7 +22,6 @@ import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import org.apache.hc.client5.http.utils.URIUtils; import org.eclipse.jetty.util.URIUtil; import org.intellij.lang.annotations.Language; import org.jetbrains.annotations.Contract; @@ -3923,6 +3922,13 @@ public String getUrlParam(String paramName, boolean decode) return paramValue; } + /** + * Parses the URL query of the current page + * @deprecated Duplicated in {@link WebTestHelper#parseUrlQueryString(String)}. Warning: valueless parameters are + * handled differently ({@code null} instead of {@code ""}) + * @return Map of encoded URL parameters + */ + @Deprecated (since = "25.1") public Map getUrlParameters() { Map params = new HashMap<>(); diff --git a/src/org/labkey/test/pages/reports/ScriptReportPage.java b/src/org/labkey/test/pages/reports/ScriptReportPage.java index 1466b0dabb..2d57bc293d 100644 --- a/src/org/labkey/test/pages/reports/ScriptReportPage.java +++ b/src/org/labkey/test/pages/reports/ScriptReportPage.java @@ -86,7 +86,7 @@ public String saveReport(String name, boolean isSaveAs, int wait) { saveReportWithName(name, isSaveAs); } - return getUrlParam("reportId"); + return getUrlParam("reportId", true); } /** From 6b0e28c697a0f91e365bda837648380be89d8786 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Mon, 9 Dec 2024 11:39:42 -0800 Subject: [PATCH 2/2] Wait for new tab to be ready --- src/org/labkey/test/WebDriverWrapper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index 99d912718e..5b38bc7812 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -1006,6 +1006,9 @@ public void switchToWindow(int index) try { getDriver().switchTo().window(windows.get(index)); + new WebDriverWait(getDriver(), Duration.ofSeconds(WAIT_FOR_PAGE)) + .withMessage("waiting for document to be ready") + .until(wd -> Objects.equals(executeScript("return document.readyState;"), "complete")); } catch (StackOverflowError soe) {