Example usage for org.openqa.selenium WebElement findElements

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

Introduction

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

Prototype

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

Source Link

Document

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

Usage

From source file:com.jaeksoft.searchlib.crawler.web.spider.ClickCapture.java

License:Open Source License

private boolean locateAimgClickCapture(WebElement aElement) {
    if (!aElement.isDisplayed())
        return false;
    String ahref = aElement.getAttribute("href");
    List<WebElement> imgElements = aElement.findElements(By.cssSelector("img"));
    if (imgElements == null)
        return false;
    for (WebElement imgElement : imgElements) {
        if (!imgElement.isDisplayed())
            continue;
        imgSrc = imgElement.getAttribute("src");
    }//w  w w  .  ja va2  s  .  c  om
    anchorHref = ahref;
    return true;
}

From source file:com.jaeksoft.searchlib.crawler.web.spider.ClickCapture.java

License:Open Source License

private boolean locateElement(BrowserDriver<?> browserDriver, WebElement webElement)
        throws SearchLibException, IOException {
    By by = By.cssSelector("a");
    List<WebElement> aElements = webElement == null ? browserDriver.locateBy(by) : webElement.findElements(by);
    if (locateAimgClickCapture(aElements))
        return true;
    by = By.cssSelector("embed");
    List<WebElement> embedElements = webElement == null ? browserDriver.locateBy(by)
            : webElement.findElements(by);
    if (locateEmbedClickCapture(embedElements))
        return true;
    by = By.cssSelector("object > object");
    List<WebElement> objectElements = webElement == null ? browserDriver.locateBy(by)
            : webElement.findElements(by);
    if (locateEmbedClickCapture(objectElements))
        return true;
    by = By.tagName("iframe");
    List<WebElement> iFrameElements = webElement == null ? browserDriver.locateBy(by)
            : webElement.findElements(by);
    if (locateIFrame(browserDriver, iFrameElements))
        return true;
    return false;
}

From source file:com.liferay.faces.bridge.test.integration.issue.JSFSPEC_1433PortletTester.java

License:Open Source License

private String getFailedComponents(BrowserDriver browserDriver) {

    // TECHNICAL NOTE: Ensure that the components' "name" attributes have been removed.
    List<WebElement> uiInputComponentElements = browserDriver
            .findElementsByXpath(UI_INPUT_COMPONENT_ELEMENTS_XPATH);
    Assert.assertFalse(uiInputComponentElements.isEmpty());

    WaitingAsserter waitingAsserter = getWaitingAsserter();

    for (WebElement uiInputComponentElement : uiInputComponentElements) {
        waitingAsserter.assertTrue(new NameAttributeRemoved(uiInputComponentElement));
    }//from w w w .  j a  v  a2 s  . c o  m

    // Click the *Run Test* button.
    String runTestButtonXpath = "(//button[contains(text(),'Run Test')]|//input[contains(@value,'Run Test')])";
    browserDriver.waitForElementEnabled(runTestButtonXpath);
    browserDriver.clickElementAndWaitForRerender(runTestButtonXpath);

    String failedComponents = "";
    String fieldXpath = "//*[contains(@class,'html-field')]";
    List<WebElement> fieldElements = browserDriver.findElementsByXpath(fieldXpath);

    if (fieldElements.isEmpty()) {
        throw new NoSuchElementException(fieldXpath + " not found on page.");
    }

    for (WebElement fieldElement : fieldElements) {

        List<WebElement> messageElementList = fieldElement
                .findElements(By.xpath(".//*[contains(@class,'portlet-msg-error')]"));
        WebElement labelElement = fieldElement.findElement(By.xpath(".//label"));
        String componentName = labelElement.getText();
        componentName = componentName.replaceAll("\\s+.*$", "");

        // If a component does not have the correct error message ("Text verification failed." for portal:captcha,
        // "Value is required." for all other components), add it to the list of failed components.
        if (messageElementList.isEmpty()) {
            failedComponents += (componentName + ", ");
        } else {

            WebElement messageElement = messageElementList.get(0);
            String messageText = messageElement.getText();

            if (!"Value is required.".equals(messageText)) {
                failedComponents += (componentName + ", ");
            }
        }
    }

    return failedComponents;
}

From source file:com.linagora.obm.ui.scenario.event.EventStepdefs.java

License:Open Source License

private boolean isYearlyEventInPrintedMonth(String title, String expectedDate, String expectedEventDatesTitle) {
    boolean found = false;
    WebElement eventsElement = driver.findElement(new ByCssSelector(".spreadSheet.eventList"));
    List<WebElement> divElements = eventsElement.findElements(new ByCssSelector("div"));
    for (WebElement divElement : divElements) {
        if (divElement.getAttribute("id").contains(expectedDate)) {
            List<WebElement> spanElements = divElement.findElements(new ByCssSelector("span"));
            for (WebElement spanElement : spanElements) {
                if (spanElement.getText().startsWith(expectedEventDatesTitle)) {
                    WebElement imageElement = divElement.findElement(new ByCssSelector("strong"));
                    assertThat(imageElement.getText()).isEqualTo(title);
                    found = true;//from  ww  w  .  java2s  .  c o m
                    break;
                }
            }
        }
        if (found) {
            break;
        }
    }
    return found;
}

From source file:com.maoyan.pf.webcollector.spider.AttendrateCrawler.java

License:Open Source License

public static void main(String[] args) throws Exception {
    Executor executor = new Executor() {
        @Override// www  . j  a  v  a2  s .c om
        public void execute(CrawlDatum datum, CrawlDatums next) throws Exception {
            MongoClient mongoClient = new MongoClient("localhost", 27017);
            // ?
            // DBCollection dbCollection = mongoClient.getDB("maoyan_crawler").getCollection("rankings_am"); 
            DB db = mongoClient.getDB("maoyan_crawler");
            // ?????
            Set<String> colls = db.getCollectionNames();
            for (String s : colls) {
                // Collection(?"")
                if (s.equals("attend_rate")) {
                    db.getCollection(s).drop();
                }
            }
            DBCollection dbCollection = db.getCollection("attend_rate");
            HtmlUnitDriver driver = new HtmlUnitDriver();
            driver.setJavascriptEnabled(false);
            driver.get(datum.getUrl());
            //                System.out.println(driver.getPageSource());
            WebElement element = driver.findElementByCssSelector("div#seat_table");
            List<WebElement> movie_name = element.findElements(By.className("c1 lineDot"));
            List<WebElement> boxoffice_rate = element.findElements(By.className("c2 red"));
            List<WebElement> visit_pershow = element.findElements(By.className("c3 gray"));
            WebElement cityarea = driver.findElementByCssSelector("span[class='today']");
            System.out.println(cityarea.getText());
            for (int i = 0; i < movie_name.size(); i++) {
                System.out.println(movie_name.get(i).getText());
                System.out.println(boxoffice_rate.get(i).getText());
                System.out.println(visit_pershow.get(i).getText());
                BasicDBObject dbObject = new BasicDBObject();
                dbObject.append("title", cityarea.getText()).append("movie_name", movie_name.get(i).getText())
                        .append("boxoffice_rate", boxoffice_rate.get(i).getText())
                        .append("visit_pershow", visit_pershow.get(i).getText());
                dbCollection.insert(dbObject);
            }
            mongoClient.close();
        }
    };

    //DBDBManager
    DBManager manager = new BerkeleyDBManager("maoyan");
    //Crawler?DBManagerExecutor
    Crawler crawler = new Crawler(manager, executor);
    crawler.addSeed("http://pf.maoyan.com/attend/rate");
    crawler.start(1);
}

From source file:com.mgmtp.jfunk.web.step.CheckTableCell.java

License:Apache License

@Override
public void execute() {
    WebElement table = findTable(WebConstants.ID, idName);
    List<WebElement> rows = table.findElements(By.tagName(WebConstants.TR));
    if (rowNumber < rows.size()) {
        throw new StepException("Table only had " + rows.size() + " rows; row index however is " + rowNumber);
    }//w  w  w  .j a  v  a  2  s . c  o  m

    List<WebElement> columns = rows.get(rowNumber).findElements(By.tagName(WebConstants.TD));
    WebElement cell = columns.get(columnNumber);
    if (cell == null) {
        throw new StepException("No column " + columnNumber + " in row " + rowNumber);
    }
    String actualValue = cell.getText().trim();
    Matcher m = pattern.matcher(actualValue);
    if (!m.matches()) {
        throw new ValidationException("Value of row " + rowNumber + " and column " + columnNumber
                + " was not correct: The actual value " + actualValue
                + " does not match the regular expression " + pattern);
    }
}

From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java

License:Open Source License

public void changeTableRow(String tableName, String rowName, String oldRowName) {
    WebElement tableRow = getRowForTable(tableName, oldRowName, true);
    List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td"));
    tableRowColumns.get(0).findElement(By.tagName("input")).clear();
    tableRowColumns.get(0).findElement(By.tagName("input")).sendKeys(rowName);
}

From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java

License:Open Source License

public void setUpTableContentHeader(String tableName, int teachingNumber, int generalizationNumber) {
    WebElement table = getTableWithHeader(tableName, true);
    WebElement tableContent = table.findElement(By.className("ui-datatable-tablewrapper"));
    WebElement tableContentHeader = tableContent.findElement(By.tagName("thead"));
    List<WebElement> tableContentHeaderColumns = tableContentHeader.findElements(By.className("checkbox-cell"));
    for (WebElement tableContentHeaderColumn : tableContentHeaderColumns) {
        if (tableContentHeaderColumn.findElement(By.className("ui-column-title")).getText().equals("U:")) {
            setUpHeaderParameter(tableContentHeaderColumn, teachingNumber);
        }/*from w w  w.ja  v a2  s .c om*/
        if (tableContentHeaderColumn.findElement(By.className("ui-column-title")).getText().equals("G:")) {
            setUpHeaderParameter(tableContentHeaderColumn, generalizationNumber);
        }
    }

}

From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java

License:Open Source License

public void clickDeleteRow(String tableName, String rowsName) {
    WebElement tableRow = getRowForTable(tableName, rowsName, true);
    List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td"));
    tableRowColumns.get(3).findElement(By.tagName("button")).click();
    SeleniumWaiter.waitForJQueryAndPrimeFaces(driver);
}

From source file:com.mroza.seleniumTests.EditProgramViewTests.EditProgramViewPage.java

License:Open Source License

public List<String> getTableRowsNamesForTable(String newTableName, Boolean isEditing) {
    WebElement table = getTableWithHeader(newTableName, isEditing);
    WebElement tableContent = table.findElement(By.className("ui-datatable-tablewrapper"));
    WebElement tableContentRowsArea = tableContent.findElement(By.tagName("tbody"));
    List<WebElement> tableRows = tableContentRowsArea.findElements(By.tagName("tr"));
    List<String> tableRowNames = new ArrayList<>();
    for (WebElement tableRow : tableRows) {
        List<WebElement> tableRowColumns = tableRow.findElements(By.tagName("td"));
        if (isEditing) {
            tableRowNames.add(tableRowColumns.get(0).findElement(By.tagName("input")).getAttribute("value"));
        } else {//from   ww  w . j av  a 2 s.c  o  m
            tableRowNames.add(tableRowColumns.get(0).getText());
        }
    }
    return tableRowNames;
}