From 58868a9996fd00e4741659a2f2e3e8f58f58482f Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 24 Oct 2025 09:32:27 -0700 Subject: [PATCH 01/11] Add sleep for rendering before clicking variants Added a sleep call to allow rendering time before clicking variants. --- .../labkey/test/tests/external/labModules/JBrowseTestHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java index de884641b..0f6c6d738 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java @@ -149,6 +149,7 @@ public static By getVariantWithinTrack(BaseWebDriverTest test, String trackId, S } test.waitForElement(l); + WebDriverWrapper.sleep(100); // This allows a short window for rendering prior to clicking variants return By.xpath(l.toXpath()); } From cf326623f08aa4bc3816e9bc4717564594138468 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 24 Oct 2025 12:03:23 -0700 Subject: [PATCH 02/11] Update click action to click and hold on element --- .../labkey/test/tests/external/labModules/JBrowseTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index 9c118d2ee..d93e582dd 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -452,7 +452,9 @@ private void testTitleMapping() Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV T -> C")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); // 1:137..137 - actions.click(toClick).perform(); + actions.clickAndHold(toClick).perform(); + actions.release().perform(); + waitForElement(Locator.tagWithText("div", "1:137")); assertElementPresent(Locator.tagWithText("td", "Minor Allele Frequency")); } @@ -1811,4 +1813,4 @@ private void testLuceneColumnSerialization(String sessionId) { Assert.assertEquals(colVisModelString, getUrlParam("colVisModel")); testLuceneColumnSerializationFirstRow(); } -} \ No newline at end of file +} From cca7d47c8dab8a7c9b8ba79a444f942f8f58e428 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 26 Oct 2025 09:27:32 -0700 Subject: [PATCH 03/11] Add sleep before clicking variant in JBrowseTest Added a sleep before clicking on the variant to ensure rendering. --- .../labkey/test/tests/external/labModules/JBrowseTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index d93e582dd..3eb313e67 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -452,8 +452,8 @@ private void testTitleMapping() Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV T -> C")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); // 1:137..137 - actions.clickAndHold(toClick).perform(); - actions.release().perform(); + WebDriverWrapper.sleep(100); // This allows a short window for rendering prior to clicking variants + actions.click().perform(); waitForElement(Locator.tagWithText("div", "1:137")); assertElementPresent(Locator.tagWithText("td", "Minor Allele Frequency")); From 49c09ad95e4da5e12c27903e3712fabc37de8834 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 26 Oct 2025 09:57:02 -0700 Subject: [PATCH 04/11] Add WebDriverWrapper import to JBrowseTest --- .../org/labkey/test/tests/external/labModules/JBrowseTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index 3eb313e67..a6e235716 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -36,6 +36,7 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; +import org.labkey.test.WebDriverWrapper; import org.labkey.test.WebTestHelper; import org.labkey.test.categories.External; import org.labkey.test.categories.LabModule; From 2cc0240026ec451ece0399c6f5f61d11b10f4ef6 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 26 Oct 2025 13:45:26 -0700 Subject: [PATCH 05/11] Enhance JBrowseTest to wait for variant loading Added functionality to wait for variants to load in JBrowse test. --- .../labkey/test/tests/external/labModules/JBrowseTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index a6e235716..5f9b3aa9a 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -438,6 +438,11 @@ private void testSessionCardDisplay() beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgap&location=1:8328..8842"); waitForJBrowseToLoad(); + // This will wait for them, allowing the full browser to lod: + getVariantWithinTrack("mgap_hg38", "SNV C -> T"); + getVariantWithinTrack("mgap_hg38", "SNV G -> C"); + + Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV A -> G")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); actions.click(toClick).perform(); From 391f7f78f71fe5ca1c3556f8eed3830d582e66ce Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 26 Oct 2025 13:47:02 -0700 Subject: [PATCH 06/11] Refactor JBrowseTest to streamline variant handling Removed redundant variant waits and adjusted click action. --- .../test/tests/external/labModules/JBrowseTest.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index 5f9b3aa9a..d6eedfe89 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -438,11 +438,6 @@ private void testSessionCardDisplay() beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgap&location=1:8328..8842"); waitForJBrowseToLoad(); - // This will wait for them, allowing the full browser to lod: - getVariantWithinTrack("mgap_hg38", "SNV C -> T"); - getVariantWithinTrack("mgap_hg38", "SNV G -> C"); - - Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV A -> G")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); actions.click(toClick).perform(); @@ -456,9 +451,12 @@ private void testTitleMapping() beginAt("/" + getProjectName() + "/jbrowse-jbrowse.view?session=mgap&location=1:104..275"); waitForJBrowseToLoad(); + // This will wait for them, allowing the full browser to lod: + getVariantWithinTrack("mgap_hg38", "SNV C -> T"); + getVariantWithinTrack("mgap_hg38", "SNV G -> C"); + Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV T -> C")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); // 1:137..137 - WebDriverWrapper.sleep(100); // This allows a short window for rendering prior to clicking variants actions.click().perform(); waitForElement(Locator.tagWithText("div", "1:137")); From d0db6a27178ae8405fc45b1b83434f93600e6ea7 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sun, 26 Oct 2025 13:48:24 -0700 Subject: [PATCH 07/11] Refactor click action to use specific WebElement --- .../org/labkey/test/tests/external/labModules/JBrowseTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index d6eedfe89..65201dcdc 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -457,8 +457,7 @@ private void testTitleMapping() Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV T -> C")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); // 1:137..137 - actions.click().perform(); - + actions.click(toClick).perform(); waitForElement(Locator.tagWithText("div", "1:137")); assertElementPresent(Locator.tagWithText("td", "Minor Allele Frequency")); } From a6d8dfb3b8b93893f744a35942768fd182ccf5c9 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 27 Oct 2025 08:43:37 -0700 Subject: [PATCH 08/11] Refactor click action to include pause before click --- .../labkey/test/tests/external/labModules/JBrowseTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java index 65201dcdc..6b339bcd5 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTest.java @@ -36,7 +36,6 @@ import org.labkey.test.Locator; import org.labkey.test.TestFileUtils; import org.labkey.test.TestTimeoutException; -import org.labkey.test.WebDriverWrapper; import org.labkey.test.WebTestHelper; import org.labkey.test.categories.External; import org.labkey.test.categories.LabModule; @@ -457,7 +456,10 @@ private void testTitleMapping() Actions actions = new Actions(getDriver()); WebElement toClick = getDriver().findElements(getVariantWithinTrack("mgap_hg38", "SNV T -> C")).stream().filter(WebElement::isDisplayed).collect(JBrowseTestHelper.toSingleton()); // 1:137..137 - actions.click(toClick).perform(); + actions.moveToElement(toClick) + .pause(500) + .click() + .perform(); waitForElement(Locator.tagWithText("div", "1:137")); assertElementPresent(Locator.tagWithText("td", "Minor Allele Frequency")); } From 057bebe5891e18d14fe21afec514a2922c519eb8 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 27 Oct 2025 08:54:21 -0700 Subject: [PATCH 09/11] Improve element wait handling in JBrowseTestHelper Replaced sleep with explicit wait for element to be clickable. --- .../test/tests/external/labModules/JBrowseTestHelper.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java index 0f6c6d738..5f058881e 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java @@ -16,6 +16,7 @@ import org.openqa.selenium.Point; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; import java.io.File; import java.util.stream.Collector; @@ -149,7 +150,8 @@ public static By getVariantWithinTrack(BaseWebDriverTest test, String trackId, S } test.waitForElement(l); - WebDriverWrapper.sleep(100); // This allows a short window for rendering prior to clicking variants + WebElement el = test.waitForElement(l); + test.shortWait().until(ExpectedConditions.elementToBeClickable(el)); return By.xpath(l.toXpath()); } From 331b42dc642ca0214018781954dcd7accaebfa37 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 27 Oct 2025 10:52:27 -0700 Subject: [PATCH 10/11] Update JBrowseTestHelper.java --- .../test/tests/external/labModules/JBrowseTestHelper.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java index 5f058881e..d1d5059d2 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java @@ -150,9 +150,7 @@ public static By getVariantWithinTrack(BaseWebDriverTest test, String trackId, S } test.waitForElement(l); - WebElement el = test.waitForElement(l); - test.shortWait().until(ExpectedConditions.elementToBeClickable(el)); - + return By.xpath(l.toXpath()); } From 70a7a9a0ad031ed360261b1ab7c3193e3c514f28 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 27 Oct 2025 13:39:12 -0700 Subject: [PATCH 11/11] Remove unused import for ExpectedConditions --- .../test/tests/external/labModules/JBrowseTestHelper.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java index d1d5059d2..de884641b 100644 --- a/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java +++ b/jbrowse/test/src/org/labkey/test/tests/external/labModules/JBrowseTestHelper.java @@ -16,7 +16,6 @@ import org.openqa.selenium.Point; import org.openqa.selenium.StaleElementReferenceException; import org.openqa.selenium.WebElement; -import org.openqa.selenium.support.ui.ExpectedConditions; import java.io.File; import java.util.stream.Collector; @@ -150,7 +149,7 @@ public static By getVariantWithinTrack(BaseWebDriverTest test, String trackId, S } test.waitForElement(l); - + return By.xpath(l.toXpath()); }