Example usage for org.openqa.selenium WebDriver findElements

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

Introduction

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

Prototype

@Override
List<WebElement> findElements(By by);

Source Link

Document

Find all elements within the current page using the given mechanism.

Usage

From source file:net.mindengine.galen.tests.specs.reader.ObjectDefinitionReaderErrorHandlingTest.java

License:Apache License

@Test(expectedExceptions = { WebDriverException.class })
public void shouldHandleNullPointerInSeleniumPageAsWebDriverError() throws Exception {
    // given/*from   ww w . ja  va2s .  c o  m*/
    PageSpecReader pageSpecReader = mock(PageSpecReader.class);
    WebDriver driver = mock(WebDriver.class);
    VarsContext varsContext = mock(VarsContext.class);
    SeleniumPage seleniumPage = new SeleniumPage(driver);
    PageSpec pageSpec = new PageSpec();
    StateObjectDefinition stateObjectDefinition = new StateObjectDefinition(pageSpec, pageSpecReader);
    String line = "myObject-* css .avc";
    Place place = new Place("", 1);
    // when
    when(driver.findElements(any(By.class))).thenThrow(new NullPointerException());
    when(pageSpecReader.getPage()).thenReturn(seleniumPage);
    when(varsContext.process(line)).thenReturn(line);
    stateObjectDefinition.process(varsContext, line, place);
}

From source file:net.mindengine.galen.tests.specs.reader.ObjectDefinitionReaderErrorHandlingTest.java

License:Apache License

@Test(expectedExceptions = { WebDriverException.class })
public void shouldHandleRethrowWebDriverError() throws Exception {
    // given/*from   ww  w .j av  a  2s .  c om*/
    PageSpecReader pageSpecReader = mock(PageSpecReader.class);
    WebDriver driver = mock(WebDriver.class);
    VarsContext varsContext = mock(VarsContext.class);
    SeleniumPage seleniumPage = new SeleniumPage(driver);
    PageSpec pageSpec = new PageSpec();
    StateObjectDefinition stateObjectDefinition = new StateObjectDefinition(pageSpec, pageSpecReader);
    String line = "myObject-* css .avc";
    Place place = new Place("", 1);
    // when
    when(driver.findElements(any(By.class))).thenThrow(new WebDriverException());
    when(pageSpecReader.getPage()).thenReturn(seleniumPage);
    when(varsContext.process(line)).thenReturn(line);
    stateObjectDefinition.process(varsContext, line, place);
}

From source file:net.mindengine.galen.tests.specs.reader.ObjectDefinitionReaderErrorHandlingTest.java

License:Apache License

@Test(expectedExceptions = { WebDriverException.class })
public void shouldHandleStaleElementReferenceException() throws Exception {
    // given/*w ww.  j  a  v a2 s.c  o m*/
    PageSpecReader pageSpecReader = mock(PageSpecReader.class);
    WebDriver driver = mock(WebDriver.class);
    VarsContext varsContext = mock(VarsContext.class);
    SeleniumPage seleniumPage = new SeleniumPage(driver);
    PageSpec pageSpec = new PageSpec();
    StateObjectDefinition stateObjectDefinition = new StateObjectDefinition(pageSpec, pageSpecReader);
    String line = "myObject-* css .avc";
    Place place = new Place("", 1);
    // when
    when(driver.findElements(any(By.class))).thenThrow(new StaleElementReferenceException(""));
    when(pageSpecReader.getPage()).thenReturn(seleniumPage);
    when(varsContext.process(line)).thenReturn(line);
    stateObjectDefinition.process(varsContext, line, place);
}

From source file:net.osgiliath.messaging.repository.impl.itests.ITHelloWebUITest.java

License:Apache License

@Test
public void testSayHello() throws Exception {
    final WebDriver driver;
    driver = new FirefoxDriver();

    // Sleep until the elements we want is visible or 5 seconds is over
    long end = System.currentTimeMillis() + 10000;
    (new WebDriverWait(driver, 300)).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {
            driver.get("http://localhost:8181/net.osgiliath.hello.ui");
            boolean ret = d.getTitle().toLowerCase().startsWith("hello");
            if (!ret) {
                driver.navigate().refresh();
            }//from  w  ww  . ja v  a 2s  . c om
            return ret;
        }
    });
    WebElement element;
    element = driver.findElement(By.id("helloInput"));
    element.click();
    element.sendKeys(CORRECT_NAME);
    element = driver.findElement(By.id("helloButton"));
    element.click();
    (new WebDriverWait(driver, 20)).until(new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver d) {

            Collection<WebElement> cells = d.findElements(By.xpath("//table//tr//td"));

            return cells.size() == 1;
        }
    });
    end = System.currentTimeMillis() + 10000;

    driver.close();
}

From source file:nz.co.testamation.core.client.SeleniumBrowserDriver.java

License:Apache License

private void executeAndWaitForPageLoad(Work work) {
    work.execute();// www.  ja  v  a  2s.c o  m
    if (StringUtils.isNotBlank(endOfPageElementId)) {
        new WebDriverWait(getDriver(), defaultWaitTimeInSeconds).until(new Predicate<WebDriver>() {
            @Override
            public boolean apply(WebDriver webDriver) {
                return !webDriver.findElements(By.id(endOfPageElementId)).isEmpty();
            }
        });
    }
}

From source file:objective.taskboard.it.MainPage.java

License:Open Source License

private void assertIssues(By by, By bySubSelector, String... expectedIssueKeyList) {
    waitUntil(new ExpectedCondition<Boolean>() {
        private String[] actualIssueKeyList;

        @Override//from w  w w.  j  av  a 2 s .c  o m
        public Boolean apply(WebDriver driver) {
            try {
                actualIssueKeyList = driver.findElements(by).stream()
                        .filter(i -> getElement(i, bySubSelector).isDisplayed())
                        .map(i -> i.findElement(cssSelector(".key.issue-item")))
                        .map(i -> i.getAttribute("data-issue-key").trim()).toArray(String[]::new);
                return Arrays.equals(expectedIssueKeyList, actualIssueKeyList);
            } catch (StaleElementReferenceException e) {
                return null;
            }
        }

        @Override
        public String toString() {
            return String.format("issue key list to be \"%s\". Current issue key list: \"%s\"",
                    join(expectedIssueKeyList, ","), join(actualIssueKeyList, ","));
        }

        private WebElement getElement(WebElement element, By bySubSelector) {
            if (bySubSelector != null)
                return element.findElement(bySubSelector);

            return element;
        }
    });
}

From source file:omelet.common.ExpectedConditionExtended.java

License:Apache License

/**
 * An expectation for checking that an element is either invisible or not
 * present on the DOM.//w ww .  j  a v  a  2 s.  c  o  m
 * 
 * @param locator
 *            used to find the element
 */
public static ExpectedCondition<Boolean> invisibilityOfElementLocated(final By locator) {
    return new ExpectedCondition<Boolean>() {

        public Boolean apply(@Nonnull WebDriver driver) {
            try {
                return driver.findElements(locator).isEmpty();
            } catch (NoSuchElementException e) {
                LOGGER.error(e);
                return true;
            } catch (StaleElementReferenceException e) {
                // Returns true , need to check if stale means invisible
                LOGGER.error(e);
                return true;
            }
        }

        @Override
        public String toString() {
            return "element to no longer be visible: ";
        }
    };
}

From source file:org.alfresco.po.share.cmm.FactoryShareCMMPage.java

License:Open Source License

public HtmlPage getPage(final WebDriver driver) throws PageException {
    HtmlPage page = resolvePage(driver);

    // check for Share Error Popup
    if (page instanceof UnknownSharePage) {
        try {//from w w  w  . j  av  a 2  s . c  o m
            List<WebElement> shareDialogues = driver.findElements(By.cssSelector("div.dijitDialogTitleBar"));
            for (WebElement shareDialogue : shareDialogues) {
                if (shareDialogue.isDisplayed()) {
                    if (logger.isDebugEnabled()) {
                        logger.debug(shareDialogue.getText());
                    }
                    return resolveShareCMMDialoguePage(driver, page);
                }
            }
        } catch (Exception e) {
        }
        // check for SharePage
        if (driver.getCurrentUrl().contains(TPG_HASH)) {
            return instantiatePage(driver, pages.get("ManageTypesAndAspects"));
        } else if (driver.getCurrentUrl().contains(PROPERTIES_HASH)) {
            return instantiatePage(driver, pages.get("ManageProperties"));
        } else if (driver.getCurrentUrl().contains(FORM_EDITOR_HASH)) {
            return instantiatePage(driver, pages.get("FormEditor"));
        } else if (driver.getCurrentUrl().contains(CMM_URL)) {
            return instantiatePage(driver, pages.get("ModelManager"));
        } else if (page instanceof AdminConsolePage) {
            return instantiatePage(driver, AdminConsolePage.class);
        }
    }

    // check for SharePage
    if (driver.getCurrentUrl().contains(TPG_HASH)) {
        return instantiatePage(driver, pages.get("ManageTypesAndAspects"));
    } else if (driver.getCurrentUrl().contains(PROPERTIES_HASH)) {
        return instantiatePage(driver, pages.get("ManageProperties"));
    } else if (driver.getCurrentUrl().contains(FORM_EDITOR_HASH)) {
        return instantiatePage(driver, pages.get("FormEditor"));
    } else if (driver.getCurrentUrl().endsWith(CMM_URL) || driver.getCurrentUrl().endsWith(VIEW_MODELS_HASH)) {
        return instantiatePage(driver, pages.get("ModelManager"));
    } else if (page instanceof AdminConsolePage) {
        return instantiatePage(driver, AdminConsolePage.class);
    } else {
        return page;
    }
}

From source file:org.alfresco.po.share.cmm.FactoryShareCMMPage.java

License:Open Source License

/**
 * Resolve share cmm dialogue page./*www .  j a va2s.  com*/
 * 
 * @param driver the driver
 * @return the html page
 */
private HtmlPage resolveShareCMMDialoguePage(WebDriver driver, HtmlPage page) {
    HtmlPage sharePage = page;
    String createModel = getValue("cmm.dialogue.label.create.model");
    String importModel = getValue("cmm.dialogue.label.import.model");
    String createType = getValue("cmm.dialogue.label.create.type");
    String createPropGroup = getValue("cmm.dialogue.label.create.property.group");
    String createProperty = getValue("cmm.dialogue.label.create.property");
    String deleteModelConfirmation = getValue("cmm.dialogue.label.delete.model");
    String deleteTypeConfirmation = getValue("cmm.dialogue.label.delete.type");
    String deleteAspectConfirmation = getValue("cmm.dialogue.label.delete.aspect");
    String deletePropertyConfirmation = getValue("cmm.dialogue.label.delete.property");
    String editModel = getValue("cmm.dialogue.label.edit.model");
    String editType = getValue("cmm.dialogue.label.edit.type");
    String editAspect = getValue("cmm.dialogue.label.edit.aspect");
    String editProperty = getValue("cmm.dialogue.label.edit.property");
    String applyDefaultLayout = getValue("cmm.dialogue.label.applyDefault.form.layout");
    String clearLayout = getValue("cmm.dialogue.label.clear.form.layout");

    try {
        List<WebElement> elements = driver.findElements(By.cssSelector(SHARE_DIALOGUE_AIKAU));
        WebElement dialogue = null;
        for (WebElement element : elements) {
            if (element.isDisplayed()) {
                dialogue = element;
                break;
            }
        }

        if (dialogue != null && dialogue.isDisplayed()) {
            String dialogueText = dialogue.getText();

            if (createModel.equals(dialogueText)) {
                sharePage = instantiatePage(driver, CreateNewModelPopUp.class);
            } else if (createType.equals(dialogueText)) {
                sharePage = instantiatePage(driver, CreateNewCustomTypePopUp.class);
            } else if (createPropGroup.equals(dialogueText)) {
                sharePage = instantiatePage(driver, CreateNewPropertyGroupPopUp.class);
            } else if (createProperty.equals(dialogueText)) {
                sharePage = instantiatePage(driver, CreateNewPropertyPopUp.class);
            } else if (editModel.equals(dialogueText)) {
                sharePage = instantiatePage(driver, EditModelPopUp.class);
            } else if (editType.equals(dialogueText)) {
                sharePage = instantiatePage(driver, EditCustomTypePopUp.class);
            } else if (editAspect.equals(dialogueText)) {
                sharePage = instantiatePage(driver, EditPropertyGroupPopUp.class);
            } else if (editProperty.equals(dialogueText)) {
                sharePage = instantiatePage(driver, EditPropertyPopUp.class);
            } else if (applyDefaultLayout.equals(dialogueText)) {
                sharePage = instantiatePage(driver, ApplyDefaultLayoutPopUp.class);
            } else if (deleteModelConfirmation.equals(dialogueText)
                    || deleteTypeConfirmation.equals(dialogueText)
                    || deleteAspectConfirmation.equals(dialogueText)
                    || deletePropertyConfirmation.equals(dialogueText)) {
                sharePage = instantiatePage(driver, ConfirmDeletePopUp.class);
            } else if (clearLayout.equals(dialogueText)) {
                sharePage = instantiatePage(driver, ClearFormLayoutPopUp.class);
            } else if (importModel.equals(dialogueText)) {
                sharePage = instantiatePage(driver, ImportModelPopUp.class);
            }
        }
    } catch (NoSuchElementException nse) {
        logger.debug("No Share Dialogue (Aikau Style) open: ", nse);
    }

    return sharePage;
}

From source file:org.alfresco.po.share.FactorySharePage.java

License:Open Source License

/**
 * Creates the appropriate page object based on the current page the {@link WebDriver} is on.
 *
 * @param driver WebDriver Alfresco unmanned web browser client
 * @return SharePage the page object response
 * @throws PageException/*www .  ja v  a 2s . c  o m*/
 */
public HtmlPage resolvePage(final WebDriver driver) throws PageException {
    // Determine if user is logged in if not return login page
    // if (driver.getTitle().toLowerCase().contains(driver.getLanguageValue("login.title")))
    if (driver.getTitle().toLowerCase().contains("login")) {
        return instantiatePage(driver, LoginPage.class);
    } else {
        // Share Error PopUp
        try {
            WebElement errorPrompt = driver.findElement(By.cssSelector(FAILURE_PROMPT));
            if (errorPrompt.isDisplayed()) {
                return instantiatePage(driver, SharePopup.class);
            }
        } catch (NoSuchElementException nse) {
        }

        // Check for Share Dialogue
        try {
            WebElement shareDialogue = driver.findElement(By.cssSelector(SHARE_DIALOGUE));
            if (shareDialogue.isDisplayed() || !driver.findElements(COPY_MOVE_DIALOGUE_SELECTOR).isEmpty()) {
                HtmlPage response = resolveShareDialoguePage(driver);
                if (response != null) {
                    return response;
                }
            }
        } catch (NoSuchElementException n) {
        }

        // Determine what page we're on based on url
        return getPage(driver.getCurrentUrl(), driver);
    }
}