From 89835f6f5d13d39ba443259045faee576a3c0953 Mon Sep 17 00:00:00 2001 From: ChrisJoosse Date: Mon, 11 Aug 2025 11:06:05 -0700 Subject: [PATCH 1/3] give Manage menu some time for usage where it's the first page interaction --- src/org/labkey/test/pages/assay/AssayRunsPage.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/org/labkey/test/pages/assay/AssayRunsPage.java b/src/org/labkey/test/pages/assay/AssayRunsPage.java index 8da9a93c4a..48f679da12 100644 --- a/src/org/labkey/test/pages/assay/AssayRunsPage.java +++ b/src/org/labkey/test/pages/assay/AssayRunsPage.java @@ -121,6 +121,7 @@ protected ElementCache newElementCache() protected class ElementCache extends LabKeyPage.ElementCache { - MultiMenu manageMenu = new MultiMenu.MultiMenuFinder(getDriver()).withText("Manage").findWhenNeeded(getDriver()); + MultiMenu manageMenu = new MultiMenu.MultiMenuFinder(getDriver()).withText("Manage") + .timeout(WAIT_FOR_JAVASCRIPT).findWhenNeeded(getDriver()); } } From 36ff5acc7f6457bdec55ec02cbe5af9a44a9921f Mon Sep 17 00:00:00 2001 From: ChrisJoosse Date: Mon, 18 Aug 2025 14:30:16 -0700 Subject: [PATCH 2/3] scroll the field into view in case it's off the bottom --- src/org/labkey/test/components/ui/grids/GridFilterModal.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/org/labkey/test/components/ui/grids/GridFilterModal.java b/src/org/labkey/test/components/ui/grids/GridFilterModal.java index 0f1eb1892d..f8b6c529bb 100644 --- a/src/org/labkey/test/components/ui/grids/GridFilterModal.java +++ b/src/org/labkey/test/components/ui/grids/GridFilterModal.java @@ -44,6 +44,7 @@ protected void waitForReady() public GridFilterModal selectField(CharSequence fieldIdentifier) { WebElement fieldItem = elementCache().findFieldOption(fieldIdentifier); + getWrapper().scrollIntoView(fieldItem); String fieldLabel = WebElementUtils.getTextContent(fieldItem); fieldItem.click(); Locator.byClass("field-modal__col-sub-title").withText("Find values for " + fieldLabel) From 5d4a00b801e4dcd452e7a272f9b841fbf2aaf1e0 Mon Sep 17 00:00:00 2001 From: ChrisJoosse Date: Mon, 18 Aug 2025 14:30:57 -0700 Subject: [PATCH 3/3] support getting date/time/dateTime format options --- .../components/domain/DomainFieldRow.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/org/labkey/test/components/domain/DomainFieldRow.java b/src/org/labkey/test/components/domain/DomainFieldRow.java index dd4481a845..401fc4aa30 100644 --- a/src/org/labkey/test/components/domain/DomainFieldRow.java +++ b/src/org/labkey/test/components/domain/DomainFieldRow.java @@ -1363,6 +1363,16 @@ public String getDateTimeFormatDate() return formatValue; } + public List getDateTimeFormatDateOptions() + { + ArrayList formatValues = new ArrayList<>(); + for (String formatOption : elementCache().dateTimeFormatDateSelect.getOptions()) + { + formatValues.add(getFormatWithoutExample(formatOption)); + } + return formatValues; + } + public boolean isDateTimeFormatDateEnabled() { return elementCache().dateTimeFormatDateSelect.isInteractive(); @@ -1384,6 +1394,16 @@ public String getDateTimeFormatTime() return formatValue; } + public List getDateTimeFormatTimeOptions() + { + ArrayList formatValues = new ArrayList<>(); + for (String formatOption : elementCache().dateTimeFormatTimeSelect.getOptions()) + { + formatValues.add(getFormatWithoutExample(formatOption)); + } + return formatValues; + } + public boolean isDateTimeFormatTimeEnabled() { return elementCache().dateTimeFormatTimeSelect.isInteractive(); @@ -1427,6 +1447,16 @@ public String getDateFormat() return formatValue; } + public List getDateFormatOptions() + { + List options = new ArrayList<>(); + for (String option : elementCache().dateFormatSelect.getOptions()) + { + options.add(getFormatWithoutExample(option)); + } + return options; + } + public boolean isDateFormatEnabled() { return elementCache().dateFormatSelect.isInteractive(); @@ -1480,6 +1510,16 @@ public String getTimeFormat() return formatValue; } + public List getTimeFormatOptions() + { + ArrayList formatValues = new ArrayList<>(); + for (String formatOption : elementCache().timeFormatSelect.getOptions()) + { + formatValues.add(getFormatWithoutExample(formatOption)); + } + return formatValues; + } + public boolean isTimeFormatEnabled() { return elementCache().timeFormatSelect.isInteractive();