diff --git a/src/org/labkey/test/WebDriverWrapper.java b/src/org/labkey/test/WebDriverWrapper.java index 28cca5bc2f..b91e283212 100644 --- a/src/org/labkey/test/WebDriverWrapper.java +++ b/src/org/labkey/test/WebDriverWrapper.java @@ -2872,8 +2872,21 @@ public void clickAndWait(Locator l) public void openLinkInNewWindow(WebElement link) { + int winCount = getDriver().getWindowHandles().size(); link.sendKeys(Keys.chord(WebDriverUtils.MODIFIER_KEY, Keys.ENTER)); - switchToWindow(1); + switchToWindow(winCount); + waitForDocument(); + } + + public void openLinkInNewWindowOrThrow(WebElement link) + { + int winCount = getDriver().getWindowHandles().size(); + link.sendKeys(Keys.chord(WebDriverUtils.MODIFIER_KEY, Keys.ENTER)); + boolean winOpen = waitFor(() -> getDriver().getWindowHandles().size() > winCount, 1000); + if (!winOpen) + throw new IllegalStateException("Link did not open new window in tab."); + + switchToWindow(winCount); waitForDocument(); }