Example usage for org.openqa.selenium WebDriver getWindowHandles

List of usage examples for org.openqa.selenium WebDriver getWindowHandles

Introduction

In this page you can find the example usage for org.openqa.selenium WebDriver getWindowHandles.

Prototype

Set<String> getWindowHandles();

Source Link

Document

Return a set of window handles which can be used to iterate over all open windows of this WebDriver instance by passing them to #switchTo() .

Usage

From source file:omelet.driver.DriverUtility.java

License:Apache License

/***
 * Switching between windows./*  w w w .j av  a  2s .c om*/
 * 
 * @param driver
 * @param sString
 *            :Target window Title
 * @return:True if window switched
 */
public static boolean switchToWindow(WebDriver driver, String sString) {
    String currentHandle = driver.getWindowHandle();
    Set<String> handles = driver.getWindowHandles();
    if (!handles.isEmpty()) {
        for (String handle : handles) {
            LOGGER.debug("Switching to other window");
            driver.switchTo().window(handle);
            if (sString.equals(driver.getTitle())) {
                LOGGER.info("switched to window with title:" + sString);
                return true;
            }
        }
        driver.switchTo().window(currentHandle);

        LOGGER.info("Window with title:" + sString + " Not present,Not able to switch");
        return false;
    } else {
        LOGGER.info("There is only one window handle :" + currentHandle);
        return false;
    }
}

From source file:org.bigtester.ate.model.page.atewebdriver.MultiWindowsHandler.java

License:Apache License

/**
 * Refresh windows list./*from   w w w  .j  a  v  a  2  s  . c  o m*/
 *
 * @param webD
 *            the web d
 */
private void refreshWindowsList(@Nullable WebDriver webD) {
    if (null == webD)
        throw GlobalUtils.createNotInitializedException("Web Driver");
    Set<String> allWinHandles = webD.getWindowHandles();
    for (String winH : allWinHandles) {
        if (null == winH)
            throw GlobalUtils.createInternalError("web driver get all windows handles error.");
        boolean winAlreadyStored = false; //NOPMD
        for (BrowserWindow bWin : windows) {
            if (bWin.getWindowHandle().equals(winH)) {
                winAlreadyStored = true;
                break;
            }
        }
        if (!winAlreadyStored) {
            BrowserWindow temp = new BrowserWindow(winH, driver);
            windows.add(temp);
        }
    }
    for (Iterator<BrowserWindow> iter = windows.iterator(); iter.hasNext();) {
        BrowserWindow winH2 = iter.next();
        if (allWinHandles.contains(winH2.getWindowHandle())) {
            continue;
        } else {
            iter.remove();
        }
    }
    for (Iterator<BrowserWindow> iter = windows.iterator(); iter.hasNext();) {
        BrowserWindow winH2 = iter.next();
        winH2.refreshFrames();
    }

    if (StringUtils.isEmpty(this.mainWindowHandler) || StringUtils.isEmpty(this.mainWindowTitle)) {
        this.mainWindowHandler = windows.get(0).getWindowHandle();
        String currentWinHandle = webD.getWindowHandle();
        webD.switchTo().window(this.mainWindowHandler);
        this.mainWindowTitle = windows.get(0).getMyWd().getTitle();
        webD.switchTo().window(currentWinHandle);
    }

}

From source file:org.craftercms.cstudio.share.selenium.basic.ApproveScheduledTest.java

License:Open Source License

private void test_approve_scheduled(WebDriver driver) {
    // Login//w  w w.j a va  2 s.  co m
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Edit 'index' page
    CStudioSeleniumUtil.edit_index_page(driver);

    // Switch to 'Entry' window
    CStudioSeleniumUtil.switch_to_window(driver, "Entry");

    // Change title
    WebElement element = driver
            .findElement(By.id("accordion$pageSettings$internalTitle$input-counted$xforms-input-1"));
    element.clear();
    element.sendKeys("Acme Home - Updated");

    // Save changes
    CStudioSeleniumUtil.click_on(driver, By.id("formSaveButton"));

    // Wait for page to refresh
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });

    // Switch to 'Crafter Studio' window
    CStudioSeleniumUtil.switch_to_window(driver, "Crafter Studio");

    // Check updated item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Open confirm 'Submit to Go Live' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Submit to Go Live']"));

    // Wait for context nav menu
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("golivesubmitButton"));

    // Set date and time of submission
    CStudioSeleniumUtil.click_on(driver, By.id("settime"));

    element = driver.findElement(By.id("datepicker"));
    element.clear();
    element.sendKeys("9/30/2999");

    element = driver.findElement(By.id("timepicker"));
    element.clear();
    element.sendKeys("10:00:00 a.m.");

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As admin user in separate browser (or log-out and log in), refresh dashboard
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.ADMIN_USER, CStudioSeleniumUtil.ADMIN_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Submit item to go live
    CStudioSeleniumUtil.click_on(driver, By.id("/site/website/index.xml"));

    // Open confirm 'Go Live Now' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Go Live Now']"));

    // Wait for context nav menu
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("golivesubmitButton"));

    // Change scheduled date
    CStudioSeleniumUtil.click_on(driver, By.linkText("09/30 10:00 AM"));
    element = driver.findElement(By.id("datepicker"));
    element.clear();
    element.sendKeys("10/30/2999");

    element = driver.findElement(By.id("timepicker"));
    element.clear();
    element.sendKeys("11:00:00 a.m.");

    CStudioSeleniumUtil.click_on(driver, By.linkText("Done"));

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As author user in separate browser (or log-out and log in), check item is scheduled
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Check item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Wait for 'Scheduled' to appear
    new WebDriverWait(driver, CStudioSeleniumUtil.SHORT_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.findElement(By.tagName("body")).getText().contains("Scheduled:");
        }
    });

    // Close driver
    CStudioSeleniumUtil.exit(driver);
}

From source file:org.craftercms.cstudio.share.selenium.basic.ApproveSubmissionTest.java

License:Open Source License

private void test_approve_submission(WebDriver driver) {
    // Login//from  w ww  .  j a  va  2s.c  om
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Edit 'index' page
    CStudioSeleniumUtil.edit_index_page(driver);

    // Switch to 'Entry' window
    CStudioSeleniumUtil.switch_to_window(driver, "Entry");

    // Change title
    WebElement element = driver
            .findElement(By.id("accordion$pageSettings$internalTitle$input-counted$xforms-input-1"));
    element.clear();
    element.sendKeys("Acme Home - Updated");

    // Save changes
    CStudioSeleniumUtil.click_on(driver, By.id("formSaveButton"));

    // Wait for page to refresh
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });

    // Switch to 'Crafter Studio' window
    CStudioSeleniumUtil.switch_to_window(driver, "Crafter Studio");

    // Check updated item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Open confirm 'Submit to Go Live' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Submit to Go Live']"));

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As admin user in separate browser (or log-out and log in), refresh dashboard
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.ADMIN_USER, CStudioSeleniumUtil.ADMIN_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Submit item to go live
    CStudioSeleniumUtil.click_on(driver, By.id("/site/website/index.xml"));

    // Open confirm 'Go Live Now' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Go Live Now']"));

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As author user in separate browser (or log-out and log in), check item is scheduled
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Check item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Wait for 'Scheduled' to appear
    new WebDriverWait(driver, CStudioSeleniumUtil.SHORT_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.findElement(By.tagName("body")).getText().contains("Live:");
        }
    });

    // Close driver
    CStudioSeleniumUtil.exit(driver);
}

From source file:org.craftercms.cstudio.share.selenium.basic.CStudioSeleniumUtil.java

License:Open Source License

public static boolean switch_to_window(WebDriver driver, String window) {
    Set<String> handles = driver.getWindowHandles();
    for (String h : handles) {
        driver.switchTo().window(h);//from   www.java 2 s . c o  m
        if (driver.getTitle().equals(window))
            break;
    }
    return driver.getTitle().equals(window);
}

From source file:org.craftercms.cstudio.share.selenium.basic.CStudioSeleniumUtil.java

License:Open Source License

public static void edit_index_page(WebDriver driver) {
    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("CStudioAuthoring.Operations.editContent(" + "'/acme-com/page/entry', " + "'acmecom', "
            + "'/site/website/index.xml', " + "'', " + "'/site/website/index.xml', " + "false, " + "{"
            + "  success: function() { " + "  this.callingWindow.location.reload(true); " + "},"
            + "  failure: function() {" + "}," + "  callingWindow: window" + "}, " + "'');");

    // Wait for the window to load
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() > 1;
        }//w w w  .  ja  v  a2s.c  om
    });
}

From source file:org.craftercms.cstudio.share.selenium.basic.RejectSubmissionTest.java

License:Open Source License

private void test_reject_submission(WebDriver driver) {
    // Login//from   ww w . j  a  v a 2  s .  c  o  m
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Edit 'index' page
    CStudioSeleniumUtil.edit_index_page(driver);

    // Switch to 'Entry' window
    CStudioSeleniumUtil.switch_to_window(driver, "Entry");

    // Change title
    WebElement element = driver
            .findElement(By.id("accordion$pageSettings$internalTitle$input-counted$xforms-input-1"));
    element.clear();
    element.sendKeys("Acme Home - Updated");

    // Save changes
    CStudioSeleniumUtil.click_on(driver, By.id("formSaveButton"));

    // Wait for page to refresh
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });

    // Switch to 'Crafter Studio' window
    CStudioSeleniumUtil.switch_to_window(driver, "Crafter Studio");

    // Check updated item
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("component-1-4-/site/website/index.xml"));
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Open confirm 'Submit to Go Live' dialog
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.xpath("//a[text()='Submit to Go Live']"));
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Submit to Go Live']"));

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("golivesubmitButton"));
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT, By.id("acnOKButton"));
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    new WebDriverWait(driver, CStudioSeleniumUtil.SHORT_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.findElement(By.tagName("body")).getText().contains("Log Out");
        }
    });

    // Log out and login as admin
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.ADMIN_USER, CStudioSeleniumUtil.ADMIN_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Wait for In-Progress items to load
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("/site/website/index.xml"));
    CStudioSeleniumUtil.click_on(driver, By.id("/site/website/index.xml"));

    // Open 'Reject' dialog
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.xpath("//a[text()='Reject']"));
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Reject']"));

    // Select a reason to reject
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("rejectReasonDropDown"));
    Select select = new Select(driver.findElement(By.id("rejectReasonDropDown")));
    select.selectByVisibleText("Not Approved");

    // Send rejection
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT, By.id("acnOKButton"));
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As author user in separate browser (or log-out and log in), refresh dashboard
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Check updated item
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("component-1-4-/site/website/index.xml"));
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Wait for context nav 'In Progress' menu
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.xpath("//div[text()=' In Progress:']"));

    // Close driver
    CStudioSeleniumUtil.exit(driver);
}

From source file:org.craftercms.cstudio.share.selenium.basic.SubmitScheduledTest.java

License:Open Source License

private void test_submit_scheduled(WebDriver driver) {
    // Login/* www . ja  va 2s.  c o  m*/
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Edit 'index' page
    CStudioSeleniumUtil.edit_index_page(driver);

    // Switch to 'Entry' window
    CStudioSeleniumUtil.switch_to_window(driver, "Entry");

    // Change title
    WebElement element = driver
            .findElement(By.id("accordion$pageSettings$internalTitle$input-counted$xforms-input-1"));
    element.clear();
    element.sendKeys("Acme Home - Updated");

    // Save changes
    CStudioSeleniumUtil.click_on(driver, By.id("formSaveButton"));

    // Wait for page to refresh
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });

    // Switch to 'Crafter Studio' window
    CStudioSeleniumUtil.switch_to_window(driver, "Crafter Studio");

    // Check updated item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Open confirm 'Submit to Go Live' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Submit to Go Live']"));

    // Wait for context nav menu
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("golivesubmitButton"));

    // Set date and time of submission
    CStudioSeleniumUtil.click_on(driver, By.id("settime"));

    element = driver.findElement(By.id("datepicker"));
    element.clear();
    element.sendKeys("9/30/2999");

    element = driver.findElement(By.id("timepicker"));
    element.clear();
    element.sendKeys("10:00:00 a.m.");

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As admin user in separate browser (or log-out and log in), refresh dashboard
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.ADMIN_USER, CStudioSeleniumUtil.ADMIN_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Click on 'Show "In-Progress" Items'
    CStudioSeleniumUtil.click_on(driver, By.id("widget-expand-state-component-1-1"));

    // Wait for In-Progress items to load
    new WebDriverWait(driver, CStudioSeleniumUtil.SHORT_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.findElement(By.id("widget-expand-state-component-1-1")).getText()
                    .equals("Hide \"In-Progress\" Items");
        }
    });

    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("/site/website/index.xml"));

    // Close driver
    CStudioSeleniumUtil.exit(driver);
}

From source file:org.craftercms.cstudio.share.selenium.basic.SubmitToGoLiveTest.java

License:Open Source License

private void test_submit_to_go_live(WebDriver driver) {
    // Login/*from  w  ww .j  a v a 2s. c  o  m*/
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.AUTHOR_USER, CStudioSeleniumUtil.AUTHOR_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Edit 'index' page
    CStudioSeleniumUtil.edit_index_page(driver);

    // Switch to 'Entry' window
    CStudioSeleniumUtil.switch_to_window(driver, "Entry");

    // Change title
    WebElement element = driver
            .findElement(By.id("accordion$pageSettings$internalTitle$input-counted$xforms-input-1"));
    element.clear();
    element.sendKeys("Acme Home - Updated");

    // Save changes
    CStudioSeleniumUtil.click_on(driver, By.id("formSaveButton"));

    // Wait for page to refresh
    new WebDriverWait(driver, CStudioSeleniumUtil.LONG_TIMEOUT).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });

    // Switch to 'Crafter Studio' window
    CStudioSeleniumUtil.switch_to_window(driver, "Crafter Studio");

    // Check updated item
    CStudioSeleniumUtil.click_on(driver, By.id("component-1-4-/site/website/index.xml"));

    // Open confirm 'Submit to Go Live' dialog
    CStudioSeleniumUtil.click_on(driver, By.xpath("//a[text()='Submit to Go Live']"));

    // Confirm submission (on dialog)
    CStudioSeleniumUtil.click_on(driver, By.id("golivesubmitButton"));

    // Close dialog
    CStudioSeleniumUtil.click_on(driver, By.id("acnOKButton"));

    // As admin user in separate browser (or log-out and log in), refresh dashboard
    CStudioSeleniumUtil.logout_from_cs(driver);
    CStudioSeleniumUtil.try_login(driver, CStudioSeleniumUtil.ADMIN_USER, CStudioSeleniumUtil.ADMIN_PASSWORD,
            true);

    // Navigate to Dashboard
    CStudioSeleniumUtil.navigate_to_dashboard(driver);

    // Click on 'Show "In-Progress" Items'
    CStudioSeleniumUtil.click_on(driver, By.id("widget-expand-state-component-1-1"));

    // Wait for In-Progress items to load
    CStudioSeleniumUtil.wait_until_displayed(driver, CStudioSeleniumUtil.SHORT_TIMEOUT,
            By.id("/site/website/index.xml"));

    // Close driver
    CStudioSeleniumUtil.exit(driver);
}

From source file:org.craftercms.web.basic.ComponentTest.java

public void setShowInNav(boolean show) {

    // Click on Edit link
    driver.findElement(By.xpath("//*[@id=\"acn-active-content\"]/div[2]/a")).click();

    new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {
        @Override// www . j  ava 2s.  c  om
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() > 1;
        }
    });

    String pageWindow = driver.getWindowHandle();
    String editWindow = "";
    Set<String> handles = driver.getWindowHandles();
    for (String windowHandle : handles) {
        driver.switchTo().window(windowHandle);
        if (driver.getCurrentUrl().contains("cstudio-form")) {
            editWindow = windowHandle;
            break;
        }
    }
    //The window can be switch
    assertTrue(!editWindow.isEmpty());

    Select dropdown = new Select(
            driver.findElement(By.cssSelector("#placeInNav .cstudio-form-control-dropdown")));
    dropdown.selectByValue("" + show);
    CStudioSeleniumUtil.clickOn(driver, By.id("cstudioSaveAndClose"));

    driver.switchTo().window(pageWindow);

    new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>() {
        @Override
        public Boolean apply(WebDriver d) {
            return d.getWindowHandles().size() == 1;
        }
    });
}