List of usage examples for org.openqa.selenium WebElement getLocation
Point getLocation();
From source file:net.codestory.simplelenium.filters.LazyShould.java
License:Apache License
private static String location(WebElement element) { return element.getLocation().toString(); }
From source file:org.alfresco.po.share.CustomiseUserDashboardPage.java
License:Open Source License
/** * Add given dashlet into given column./*ww w. j ava 2 s. c o m*/ * * @param dashletName Dashlets * @param columnNumber int * @return {@link SiteDashboardPage} */ public DashBoardPage addDashlet(Dashlets dashletName, int columnNumber) { if (dashletName == null) { throw new IllegalArgumentException("Dashlet Name is required"); } if (columnNumber < 1 || columnNumber > NUMBER_OF_COLUMNS) { throw new IllegalArgumentException("Column number should be between 1 and 4"); } WebElement newDashlet = null; int noOfColumns = 0; this.selectAddDashlets(); try { // String dashletXpath = String.format("//li[@class='availableDashlet dnd-draggable']/span[text()=\"%s\"]", dashletName.getDashletName()); // WebElement element = findAndWait(By.xpath(dashletXpath)); // executeJavaScript(String.format("window.scrollTo('%s', '%s')", element.getLocation().getX(), element.getLocation().getY())); String dashletSelector = String.format("li.availableDashlet div.dnd-draggable[title*=\"%s\"]", dashletName.getDashletName().replace("'", "\'")); By dashlet = By.cssSelector("li.availableDashlet div.dnd-draggable[title*=\"" + dashletName.getDashletName().replace("'", "\'") + "\"]"); WebElement element = findAndWait(dashlet); // Move element into View if not already Actions actions = new Actions(driver); actions.moveToElement(element).perform(); Coordinates coord = ((Locatable) element).getCoordinates(); coord.inViewPort(); element.click(); List<WebElement> dashlets = findAndWaitForElements(AVAILABLE_DASHLETS_NAMES, getDefaultWaitTime()); for (WebElement source : dashlets) { if (source.getText().equals(dashletName.getDashletName())) { newDashlet = source; break; } } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } if (newDashlet != null) { try { String columns = driver.findElement(By.cssSelector("div[id$='default-wrapper-div']")) .getAttribute("class"); if (!StringUtils.isEmpty(columns)) { String columnSize = columns.substring(columns.length() - 1); noOfColumns = Integer.valueOf(columnSize); } } catch (NoSuchElementException te) { logger.error("Unable to find the Columns css " + te); } if (columnNumber <= noOfColumns) { try { List<WebElement> existingDashletsInColumn = Collections.emptyList(); try { existingDashletsInColumn = findAndWaitForElements( By.cssSelector(String.format("ul[id$='column-ul-%d'] li", columnNumber)), getDefaultWaitTime()); } catch (TimeoutException e) { logger.error("Selected column is empty", e); } if (existingDashletsInColumn.size() < MAX_DASHLETS_IN_COLUMN) { WebElement target = findAndWait(By.xpath(String.format( "//ul[@class='usedList' and contains(@id,'-column-ul-%d')]", columnNumber))); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(newDashlet, target); return selectOk(); } else { throw new PageOperationException("Exceeded the no. of dashlets in given column."); } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } } else { throw new PageOperationException("Expected column does not exist in available columns list."); } } throw new PageOperationException("Error in adding dashlet using drag and drop"); }
From source file:org.alfresco.po.share.CustomiseUserDashboardPage.java
License:Open Source License
/** * Add given dashlet into given column./* w w w . j a va 2 s . c om*/ * * @param dashletName String * @param columnNumber int * @return {@link SiteDashboardPage} */ public DashBoardPage addDashlet(String dashletName, int columnNumber) { if (dashletName == null) { throw new IllegalArgumentException("Dashlet Name is required"); } if (columnNumber < 1 || columnNumber > NUMBER_OF_COLUMNS) { throw new IllegalArgumentException("Column number should be between 1 and 4"); } WebElement newDashlet = null; int noOfColumns = 0; this.selectAddDashlets(); try { String dashletXpath = String.format("//*[@class='availableDashlet dnd-draggable']/span[text()=\"%s\"]", dashletName); WebElement element = findAndWait(By.xpath(dashletXpath)); element.click(); List<WebElement> dashlets = findAndWaitForElements(AVAILABLE_DASHLETS_NAMES, getDefaultWaitTime()); for (WebElement source : dashlets) { if (source.getText().equals(dashletName)) { newDashlet = source; break; } } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } if (newDashlet != null) { try { String columns = driver.findElement(By.cssSelector("div[id$='default-wrapper-div']")) .getAttribute("class"); if (!StringUtils.isEmpty(columns)) { String columnSize = columns.substring(columns.length() - 1); noOfColumns = Integer.valueOf(columnSize); } } catch (NoSuchElementException te) { logger.error("Unable to find the Columns css " + te); } if (columnNumber <= noOfColumns) { try { List<WebElement> existingDashletsInColumn = Collections.emptyList(); try { existingDashletsInColumn = findAndWaitForElements( By.cssSelector(String.format("ul[id$='column-ul-%d'] li", columnNumber)), getDefaultWaitTime()); } catch (TimeoutException e) { logger.error("Selected column is empty", e); } if (existingDashletsInColumn.size() < MAX_DASHLETS_IN_COLUMN) { WebElement target = findAndWait(By.xpath(String.format( "//ul[@class='usedList' and contains(@id,'-column-ul-%d')]", columnNumber))); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(newDashlet, target); return selectOk(); } else { throw new PageOperationException("Exceeded the no. of dashlets in given column."); } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } } else { throw new PageOperationException("Expected column does not exist in available columns list."); } } throw new PageOperationException("Error in adding dashlet using drag and drop"); }
From source file:org.alfresco.po.share.site.CustomiseSiteDashboardPage.java
License:Open Source License
/** * Add given dashlet into given column.// www. j a v a2 s . com * * @param dashletName Dashlets * @param columnNumber int * @return {@link SiteDashboardPage} */ public SiteDashboardPage addDashlet(Dashlets dashletName, int columnNumber) { if (dashletName == null) { throw new IllegalArgumentException("Dashlet Name is required"); } if (columnNumber < 1 || columnNumber > NUMBER_OF_COLUMNS) { throw new IllegalArgumentException("Column number should be between 1 and 4"); } WebElement newDashlet = null; int noOfColumns = 0; this.selectAddDashlets(); try { String dashletSelector = String.format("li.availableDashlet div[title*='%s']", dashletName.getDashletName()); WebElement element = findAndWait(By.cssSelector(dashletSelector)); element.click(); List<WebElement> dashlets = findAndWaitForElements(AVAILABLE_DASHLETS_NAMES); for (WebElement source : dashlets) { if (source.getText().equals(dashletName.getDashletName())) { newDashlet = source; break; } } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); throw new PageOperationException("Error in adding dashlet using drag and drop", te); } if (newDashlet != null) { try { String columns = driver.findElement(By.cssSelector("div[id$='default-wrapper-div']")) .getAttribute("class"); if (!StringUtils.isEmpty(columns)) { String columnSize = columns.substring(columns.length() - 1); noOfColumns = Integer.valueOf(columnSize); } } catch (NoSuchElementException te) { logger.error("Unable to find the Columns css " + te); } if (columnNumber <= noOfColumns) { try { List<WebElement> existingDashletsInColumn = Collections.emptyList(); try { existingDashletsInColumn = findAndWaitForElements( By.cssSelector(String.format("ul[id$='column-ul-%d'] li", columnNumber))); } catch (TimeoutException e) { logger.error("Selected column is empty", e); } if (existingDashletsInColumn.size() < MAX_DASHLETS_IN_COLUMN) { WebElement target = findAndWait(By.xpath(String.format( "//ul[@class='usedList' and contains(@id,'-column-ul-%d')]", columnNumber))); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(newDashlet, target); return selectOk(); } else { throw new PageOperationException("Exceeded the no. of dashlets in given column."); } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } } else { throw new PageOperationException("Expected column does not exist in available columns list."); } } throw new PageOperationException("Error in adding dashlet using drag and drop"); }
From source file:org.alfresco.po.share.site.CustomiseSiteDashboardPage.java
License:Open Source License
/** * Add given dashlet into given column./*from ww w.j a v a 2 s. c om*/ * * @param dashletName String * @param columnNumber int * @return {@link SiteDashboardPage} */ @Deprecated public SiteDashboardPage addDashlet(String dashletName, int columnNumber) { if (dashletName == null) { throw new IllegalArgumentException("Dashlet Name is required"); } if (columnNumber < 1 || columnNumber > NUMBER_OF_COLUMNS) { throw new IllegalArgumentException("Column number should be between 1 and 4"); } WebElement newDashlet = null; int noOfColumns = 0; this.selectAddDashlets(); try { String dashletXpath = String.format("//*[@class='availableDashlet dnd-draggable']/span[text()='%s']", dashletName); WebElement element = findAndWait(By.xpath(dashletXpath)); element.click(); List<WebElement> dashlets = findAndWaitForElements(AVAILABLE_DASHLETS_NAMES); for (WebElement source : dashlets) { if (source.getText().equals(dashletName)) { newDashlet = source; break; } } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names " + te); } if (newDashlet != null) { try { String columns = driver.findElement(By.cssSelector("div[id$='default-wrapper-div']")) .getAttribute("class"); if (!StringUtils.isEmpty(columns)) { String columnSize = columns.substring(columns.length() - 1); noOfColumns = Integer.valueOf(columnSize); } } catch (NoSuchElementException te) { logger.error("Unable to find the Columns css " + te); } if (columnNumber <= noOfColumns) { try { List<WebElement> existingDashletsInColumn = Collections.emptyList(); try { existingDashletsInColumn = findAndWaitForElements( By.cssSelector(String.format("ul[id$='column-ul-%d'] li", columnNumber))); } catch (TimeoutException e) { logger.error("Selected column is empty", e); } if (existingDashletsInColumn.size() < MAX_DASHLETS_IN_COLUMN) { WebElement target = findAndWait(By.xpath(String.format( "//ul[@class='usedList' and contains(@id,'-column-ul-%d')]", columnNumber))); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(newDashlet, target); return selectOk(); } else { throw new PageOperationException("Exceeded the no. of dashlets in given column."); } } catch (TimeoutException te) { logger.error("Exceeded time to find the Available dashlet names ", te); } } else { throw new PageOperationException("Expected column does not exist in available columns list."); } } throw new PageOperationException("Error in adding dashlet using drag and drop"); }
From source file:org.alfresco.po.share.site.CustomizeSitePage.java
License:Open Source License
/** * Move pages from Current Site Pages to Available Site Pages * /* w w w .j ava2s. c o m*/ * @param pageType * @return */ public HtmlPage addToAvailablePages(SitePageType pageType) { WebElement target = driver.findElement(AVAILABLE_PAGES); try { WebElement elem = driver.findElement(pageType.getLocator()); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(elem, target); } catch (TimeoutException toe) { throw new PageException("Not able to find Site Page: " + pageType, toe); } return getCurrentPage(); }
From source file:org.alfresco.po.share.site.CustomizeSitePage.java
License:Open Source License
/** * Move pages from Available Site Pages to Current Site Pages * //from w ww . j ava 2 s . co m * @param pageType * @return */ public HtmlPage addToCurrentPages(SitePageType pageType) { WebElement target = driver.findElement(CURRENT_PAGES_CONTAINER); try { WebElement elem = driver.findElement(pageType.getLocator()); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(elem, target); } catch (TimeoutException toe) { throw new PageException("Not able to find Site Page: " + pageType, toe); } return getCurrentPage(); }
From source file:org.alfresco.po.share.site.CustomizeSitePage.java
License:Open Source License
/** * Method used to add pages using coordinates for dropping * * @param pageTypes List<SitePageType> * @return SiteDashboardPage// w w w . ja v a2s.com */ public HtmlPage addPages(List<SitePageType> pageTypes) { if (getAvailablePages().containsAll(pageTypes)) { for (SitePageType theTypes : pageTypes) { try { WebElement elem = driver.findElement(theTypes.getLocator()); WebElement target = driver.findElement(CURRENT_PAGES_CONTAINER); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(elem, target); } catch (TimeoutException e) { throw new PageException("Not able to Site Page in the Page : " + theTypes, e); } } } else { throw new PageException( "Some of Site Page(s) are not available to add, may be already added. " + pageTypes.toString()); } if (!getAddedPages().containsAll(pageTypes)) { throw new PageException("Not all pages were added!"); } driver.findElement(SAVE_BUTTON).click(); waitUntilAlert(); return getCurrentPage(); }
From source file:org.alfresco.po.share.site.CustomizeSitePage.java
License:Open Source License
/** * Method used to add current pages to Available Pages Section using coordinates for dropping and click OK button * to customise site page//from w ww .ja v a 2s. co m * * @param pageTypes List<SitePageType> * @return SiteDashboardPage */ public HtmlPage addToAvailablePagesAndClickOK(List<SitePageType> pageTypes) { WebElement target = driver.findElement(AVAILABLE_PAGES); if (getCurrentPages().containsAll(pageTypes)) { for (SitePageType theTypes : pageTypes) { try { WebElement elem = driver.findElement(theTypes.getLocator()); executeJavaScript(String.format("window.scrollTo(0, '%s')", target.getLocation().getY())); dragAndDrop(elem, target); } catch (TimeoutException e) { throw new PageException("Not able to Site Page in the Page : " + theTypes, e); } } } else { throw new PageException( "Some of Site Page(s) are not available to add to Available Pages Site, may be already added. " + pageTypes.toString()); } driver.findElement(SAVE_BUTTON).click(); waitUntilAlert(); return getCurrentPage(); }
From source file:org.apache.archiva.web.test.parent.AbstractSeleniumTest.java
License:Apache License
public <V> V tryClick(By clickableLocator, Function<? super WebDriver, V> conditions, String message, int attempts, int maxWaitTimeInS) { getWebDriver().manage().window().maximize(); int count = attempts; WebDriverWait wait = new WebDriverWait(getWebDriver(), maxWaitTimeInS); V result = null;/*from w w w .ja v a 2s . c o m*/ Exception ex = null; WebElement el = null; while (count > 0) { try { el = wait.until(ExpectedConditions.elementToBeClickable(clickableLocator)); Actions actions = new Actions(getWebDriver()); actions.moveToElement(el).click().perform(); result = wait.until(conditions); return result; } catch (Exception e) { logger.info("Error: {}, {}, {}", count, e.getClass().getName(), e.getMessage()); if (el != null) { // Elements may be stale and throw an exception, if the location is requested try { Point elLoc = el.getLocation(); logger.info("Location: x={} y={}", elLoc.getX(), elLoc.getY()); } catch (Throwable e2) { logger.info("Could not determine location"); } } ex = e; count--; } try { Thread.currentThread().sleep(500); } catch (InterruptedException e) { // Ignore } } if (ex != null) { Assert.fail(message); } return result; }