List of usage examples for org.openqa.selenium WebDriver getWindowHandles
Set<String> getWindowHandles();
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; } }); }