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:ch.admin.isb.hermes5.common.AbstractPageDriver.java

License:Apache License

public List<WebElement> allOptions(WebElement selectOneMenu) {
    return selectOneMenu.findElements(By.tagName("option"));
}

From source file:ch.vorburger.mifos.wiki.ZWikiScraper.java

License:Apache License

private List<WikiNode> ulToNodes(WebElement subElements, WikiNode parent) {
    List<WikiNode> nodes = new LinkedList<ZWikiScraper.WikiNode>();

    List<WebElement> lis = subElements.findElements(By.xpath("li"));
    for (WebElement li : lis) {
        WebElement ahref = li.findElement(By.tagName("span")).findElement(By.tagName("a"));
        String href = ahref.getAttribute("href");
        String pageID = wikiURL2PageId(href);
        WikiNode n = new WikiNode();
        n.pageID = pageID;//from www  . j  av a2s  . c  o  m
        n.parentNode = parent;

        try {
            WebElement ul = li.findElement(By.tagName("ul"));
            n.childNodes.addAll(ulToNodes(ul, n));
        } catch (NoSuchElementException e) {
            // No children then, OK.
        }

        nodes.add(n);
    }

    return nodes;
}

From source file:chromedriveryahoologin.ChromeDriverDeleteTrashEmails.java

public static void main(String[] args) {
    try {/*  w  ww.j a v  a  2 s  .c  om*/

        Integer pozSpam = 0;
        Integer pozTrash = 0;
        Integer pozHelp = 0;
        Integer pozCompose = 0;
        Integer pozNewFolder = 0;

        System.setProperty("webdriver.chrome.driver",
                "D:\\Proiecte\\selenium-java-2.47.1\\selenium-2.47.1\\chromedriver_win32\\chromedriver.exe");
        System.setProperty("webdriver.chrome.logfile",
                "D:\\prjAutJava\\YahooLogin\\ChromeDriverDeleteSpam.log");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("test-type");
        options.addArguments("--start-maximized");
        options.addArguments("--disable-web-security");
        options.addArguments("--no-proxy-server");
        options.addArguments("--disable-extensions");
        options.addArguments("--disable-notifications");
        options.addArguments("--disable-popup-blocking");
        options.addArguments("--disable-plug-in");
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("credentials_enable_service", false);
        prefs.put("profile.password_manager_enabled", false);

        options.setExperimentalOption("prefs", prefs);

        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setCapability(ChromeOptions.CAPABILITY, options);
        capabilities.setCapability(CapabilityType.SUPPORTS_APPLICATION_CACHE, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_FINDING_BY_CSS, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_LOCATION_CONTEXT, true);
        capabilities.setCapability(CapabilityType.SUPPORTS_ALERTS, true);
        capabilities.setCapability(CapabilityType.PLATFORM, "WIN10");

        driver = new ChromeDriver(capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        driver.get("https://mail.yahoo.com");
        driver.manage().window().maximize();
        WebElement usernameElem = driver.findElement(By.id("login-username"));
        usernameElem.sendKeys("andadeacu@yahoo.com");

        WebElement Next = driver.findElement(By.name("signin"));
        Next.click();

        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        WebElement passwordElem = driver.findElement(By.xpath("//input[@id='login-passwd']"));
        boolean selected = passwordElem.isSelected();

        CharSequence password = "";
        passwordElem.sendKeys(password);

        WebElement login = driver.findElement(By.id("login-signin"));

        login.click();
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        driver.switchTo().activeElement();

        WebElement tooltipElem = driver.findElement(By.xpath("//div[@class='Pos(r) M(0) TooltipContent']"));

        List<WebElement> childs = tooltipElem.findElements(By.xpath("//ul/li"));

        for (int j = 0; j < childs.size(); j++) {

            WebElement spamElem = childs.get(j);
            /*
            * System.out.println("ancorele " + j + " " + " tag " +
            * childs.get(j).getTagName() + " " + childs.get(j).getText() +
            * " " + childs.get(j).getAttribute("innerHTML"));
             */
            if (spamElem.getText().startsWith(("Spam"))) {

                pozSpam = j;

            }
            if (spamElem.getText().startsWith(("Help"))) {

                pozHelp = j;

            }
            if (spamElem.getText().startsWith(("Compose"))) {

                pozCompose = j;

            }
            if (spamElem.getText().startsWith(("New"))) {

                pozNewFolder = j;

            }

            if (spamElem.getText().startsWith(("Trash"))) {
                System.out.println(j + " Trash is " + spamElem.getTagName() + " " + spamElem.getText());
                pozTrash = j;
                break;
            }

        }
        System.out.println(pozTrash);

        WebElement trashElem = childs.get(pozTrash);

        /*
        * System.out.println("trashElem " + trashElem.getTagName() +
        * " text " + trashElem.getText() + " class_atribute " +
        * trashElem.getAttribute("class") + " data_action " +
        * trashElem.getAttribute("data_action"));
         */
        WebElement trashFolderEmpty = trashElem.findElement(
                By.xpath("//a[@class='x-gap btn btn-trash']/span/span[@class='btn icon  icon-delete']"));

        /*
        * System.out.println("spamEmptyFolder " +
        * spamFolderEmpty.getTagName() + " text " +
        * spamFolderEmpty.getText() + " location " +
        * spamFolderEmpty.isEnabled());
         */
        trashFolderEmpty.click();

        int timeOut = 5;

        WebDriverWait wait = new WebDriverWait(driver, timeOut);

        driver.switchTo().alert();

        /* for Chrome is not working 
        WebElement modalPopUp = driver.findElement(By
            .className("modal-hd yui3-widget-hd"));
                
        */

        WebElement btnDeleteSpamEmails = driver.findElement(By.className("btn left right default"));

        /*
        * <button id="okayModalOverlay" class="btn left right default"
        * title="OK" role="button" data-action="ok">OK</button>
         */
        btnDeleteSpamEmails.click();

        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        driver.switchTo().activeElement();

        // verify msg after you delete spam emails
        System.out.println(driver.getCurrentUrl());

        driver.quit();
    } catch (Exception ex) {

        ex.printStackTrace();
        driver.quit();
    }

}

From source file:cn.edu.hfut.dmic.webcollector.example.QianQuCrawler.java

License:Open Source License

public void startS() {
    String url = null;/*from w w  w.j a  va  2  s.co  m*/
    try {
        url = createBingUrl("?", 1);
    } catch (Exception e) {
        e.printStackTrace();
    }
    Executor executor = new Executor() {
        @Override
        public void execute(CrawlDatum page, CrawlDatums next) throws Exception {
            String pageType = page.meta("pageType");

            HtmlUnitDriver driver = new HtmlUnitDriver();
            driver.setJavascriptEnabled(true);
            driver.get(page.getUrl());
            WebElement element = driver.findElementByCssSelector("div#mainContent");
            List<WebElement> elementss = element.findElements(By.cssSelector("div.article"));

            for (WebElement element0 : elementss) {
                WebElement webElementa = element0.findElement(By.cssSelector("img"));
                WebElement webElementb = element0.findElement(By.cssSelector("h3 a"));
                WebElement webElementc = element0.findElement(By.cssSelector("p"));
                WebElement webElementd = element0.findElement(By.cssSelector("a"));
                String href = webElementa.getAttribute("src");
                String link = webElementd.getAttribute("href");
                CrawlDatum crawlDatum = new CrawlDatum(link).meta("Title", webElementb.getText())
                        .meta("Image", href).meta("Description", webElementc.getText())
                        .meta("pageType", "outlink").meta("link", link);
                QianQuCrawler crawler = new QianQuCrawler("bcrawlerd", true, link, request);
                crawler.addSeed(crawlDatum);
                crawler.setThreads(30);
                crawler.start(1);

            }
            for (int i = 2; i < 3; i++) {
                //
                driver.findElement(By.cssSelector("a.page-link.next")).click();
                //??
                Thread.sleep(waitLoadBaseTime + random.nextInt(waitLoadRandomTime));
                WebElement element2 = driver.findElementByCssSelector("div#mainContent");
                List<WebElement> elementss2 = element2.findElements(By.cssSelector("div.article"));

                for (WebElement element0 : elementss2) {
                    WebElement webElementa = element0.findElement(By.cssSelector("img"));
                    WebElement webElementb = element0.findElement(By.cssSelector("h3 a"));
                    WebElement webElementc = element0.findElement(By.cssSelector("p"));
                    WebElement webElementd = element0.findElement(By.cssSelector("a"));
                    String href = webElementa.getAttribute("src");
                    String link = webElementd.getAttribute("href");
                    CrawlDatum crawlDatum = new CrawlDatum(link).meta("Title", webElementb.getText())
                            .meta("Image", href).meta("Description", webElementc.getText())
                            .meta("pageType", "outlink").meta("link", link);
                    QianQuCrawler crawler = new QianQuCrawler("bcrawlerd", true, link, request);
                    crawler.addSeed(crawlDatum);
                    crawler.setThreads(30);
                    crawler.start(5);

                }
                Thread.sleep(waitLoadBaseTime + random.nextInt(waitLoadRandomTime));
            }
        }
    };
    //DBDBManager
    DBManager manager = new BerkeleyDBManager("acrawlerd");
    //Crawler?DBManagerExecutor
    Crawler crawler = new Crawler(manager, executor);
    crawler.setThreads(30);
    crawler.addSeed(url);
    try {
        crawler.start(1);
    } catch (Exception e) {
        e.printStackTrace();
    }

}

From source file:co.edu.uniandes.csw.ClinicaDeProblemas.web.test.ClinicaDeProblemasTest.java

@Test
public void testCreateRecurso() throws Exception {

    /**/*  w  w  w  .  j  a  va  2 s  . c  o  m*/
     * Comando que realiza click sobre el boton "create" del toolbar. La
     * funcin 'find' encuentra el control y posteriormente hace clic en el
     * mismo. La forma en la que se busca el control es utilizando
     * expresiones xPath ya que los id de los mismos nunca son iguales (se
     * generan con junto con el valor de componentId que vara).
     */
    driver.findElement(By.xpath("//button[contains(@id,'button-create')]")).click();

    /**
     * Comando que duerme el Thread del test por 2 segundos para dejar que
     * el efecto 'slide down' de backbone abra el formulario de createSport.
     */
    Thread.sleep(2000);

    /**
     * Comando que busca el elemento 'name' en el html actual.
     * Posteriormente limpia su contenido (comando clean).
     */
    driver.findElement(By.id("name")).clear();
    /**
     * Comando que simula la escritura de un valor en el elemento(sendKeys)
     * con el String de parmetro sobre // el elemento encontrado.
     */
    driver.findElement(By.id("name")).sendKeys("Recurso1");
    driver.findElement(By.id("tema")).clear();
    driver.findElement(By.id("tema")).sendKeys("tema1");
    driver.findElement(By.id("dificultad")).clear();
    driver.findElement(By.id("dificultad")).sendKeys("dificultad1");
    driver.findElement(By.id("tipo")).clear();
    driver.findElement(By.id("tipo")).sendKeys("tipo1");
    driver.findElement(By.id("semestre")).clear();
    driver.findElement(By.id("semestre")).sendKeys("201220");
    driver.findElement(By.id("materia")).clear();
    driver.findElement(By.id("materia")).sendKeys("fisica1");
    driver.findElement(By.id("Url")).clear();
    driver.findElement(By.id("Url")).sendKeys("http://url");

    driver.findElement(By.id("name")).clear();
    driver.findElement(By.id("name")).sendKeys("123123");

    /**
     * Comando que encuentra y hace clic sobre el boton "Save" del toolbar
     * (una vez mas encontrado por una expresin Xpath)
     */
    driver.findElement(By.xpath("//button[contains(@id,'button-save')]")).click();

    /**
     * Comando que duerme el thread para esperar el efecto de slide down que
     * abre la lista
     */
    Thread.sleep(2000);
    /**
     * Comando que obtiene el div azul de creacin exitosa. Si se obtiene,
     * la prueba va bien, si no, saldr un error y la prueba quedar como
     * fllida.
     */
    WebElement dialog = driver.findElement(By.xpath("//div[contains(@style,'display: block;')]"));
    /**
     * Comando que obtiene la tabla con el elemento que se cre
     * anteriormente.
     */
    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr"));
    boolean sucess = false;
    /**
     * Se itera sobre los elementos de la tabla para ver si el nuevo
     * elemento creado est en la lista
     */
    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(0).getText().equals("123123") && elems.get(1).getText().equals("123123")
                && elems.get(2).getText().equals("123123")) {
            /**
             * si se encuentra la fila, la variable 'fail' pasa a true,
             * indicando que el elemento creado esta en la lista.
             */
            sucess = true;
        }

    }
    /**
     * la prueba es exitosa si se encontr el dialogo de creacin exitosa y
     * el nuevo elemento est en la lista.
     */
    assertTrue(dialog != null && sucess);
}

From source file:co.edu.uniandes.csw.ClinicaDeProblemas.web.test.ClinicaDeProblemasTest.java

@Test
public void testCreateUti() throws Exception {

    /**/*from   www  .  ja va2  s  .  c  o  m*/
     * Comando que realiza click sobre el boton "create" del toolbar. La
     * funcin 'find' encuentra el control y posteriormente hace clic en el
     * mismo. La forma en la que se busca el control es utilizando
     * expresiones xPath ya que los id de los mismos nunca son iguales (se
     * generan con junto con el valor de componentId que vara).
     */
    driver.findElement(By.xpath("//button[contains(@id,'button-create')]")).click();

    /**
     * Comando que duerme el Thread del test por 2 segundos para dejar que
     * el efecto 'slide down' de backbone abra el formulario de createSport.
     */
    Thread.sleep(2000);

    /**
     * Comando que busca el elemento 'name' en el html actual.
     * Posteriormente limpia su contenido (comando clean).
     */
    driver.findElement(By.id("name")).clear();
    /**
     * Comando que simula la escritura de un valor en el elemento(sendKeys)
     * con el String de parmetro sobre // el elemento encontrado.
     */
    driver.findElement(By.id("name")).sendKeys("name");
    driver.findElement(By.id("salon")).clear();
    driver.findElement(By.id("salon")).sendKeys("Salon1");
    driver.findElement(By.id("materia")).clear();
    driver.findElement(By.id("materia")).sendKeys("materia1");
    driver.findElement(By.id("informacion")).clear();
    driver.findElement(By.id("informacion")).sendKeys("info1");

    /**
     * Comandos para llenar el campo maxAge
     */
    driver.findElement(By.id("name")).clear();
    driver.findElement(By.id("name")).sendKeys("123123");

    /**
     * Comando que encuentra y hace clic sobre el boton "Save" del toolbar
     * (una vez mas encontrado por una expresin Xpath)
     */
    driver.findElement(By.xpath("//button[contains(@id,'button-save')]")).click();

    /**
     * Comando que duerme el thread para esperar el efecto de slide down que
     * abre la lista
     */
    Thread.sleep(2000);
    /**
     * Comando que obtiene el div azul de creacin exitosa. Si se obtiene,
     * la prueba va bien, si no, saldr un error y la prueba quedar como
     * fllida.
     */
    WebElement dialog = driver.findElement(By.xpath("//div[contains(@style,'display: block;')]"));
    /**
     * Comando que obtiene la tabla con el elemento que se cre
     * anteriormente.
     */
    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr"));
    boolean sucess = false;
    /**
     * Se itera sobre los elementos de la tabla para ver si el nuevo
     * elemento creado est en la lista
     */
    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(0).getText().equals("123123") && elems.get(1).getText().equals("123123")
                && elems.get(2).getText().equals("123123")) {
            /**
             * si se encuentra la fila, la variable 'fail' pasa a true,
             * indicando que el elemento creado esta en la lista.
             */
            sucess = true;
        }

    }
    /**
     * la prueba es exitosa si se encontr el dialogo de creacin exitosa y
     * el nuevo elemento est en la lista.
     */
    assertTrue(dialog != null && sucess);
}

From source file:co.edu.uniandes.csw.RigitalApp.test.CMSTest.java

@Test
public void testCrearMaquina() throws Exception {

    driver.findElement(By.xpath("//button[contains(@id,'button-create')]")).click();

    Thread.sleep(2000);/*w  w  w .  j  a v a 2  s .c o m*/

    driver.findElement(By.id("name")).clear();

    driver.findElement(By.id("name")).sendKeys("cms prueba");

    Thread.sleep(2000);

    driver.findElement(By.id("version")).clear();
    driver.findElement(By.id("version")).sendKeys("3.0");

    Thread.sleep(2000);

    driver.findElement(By.xpath("//button[contains(@id,'button-save')]")).click();

    Thread.sleep(2000);

    WebElement dialog = driver.findElement(By.xpath("//div[contains(@style,'display: block;')]"));

    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table-striped')]/tbody/tr"));
    boolean sucess = false;
    System.out.println(table);

    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(1).getText().equals("cms prueba") && elems.get(2).getText().equals("3")) {

            sucess = true;
        }

    }
    System.out.println(sucess);

    assertTrue(dialog != null && sucess);
}

From source file:co.edu.uniandes.csw.RigitalApp.test.CMSTest.java

@Test
public void testBuscarMaquina() throws Exception {

    driver.findElement(By.xpath("//button[contains(@id,'button-search')]")).click();

    Thread.sleep(2000);/*from  w w  w .j  a  v  a2 s .com*/

    driver.findElement(By.id("btn_name")).click();

    Thread.sleep(2000);

    driver.findElement(By.id("name")).clear();

    driver.findElement(By.id("name")).sendKeys("prueba");

    Thread.sleep(2000);

    driver.findElement(By.xpath("//button[contains(@id,'button-exec-search')]")).click();

    Thread.sleep(2000);

    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table-striped')]/tbody/tr"));
    boolean success = true;

    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));
        success = success && elems.get(1).getText().contains("prueba");
    }

    assertTrue(success);
}

From source file:co.edu.uniandes.csw.RigitalApp.test.CMSTest.java

@AfterClass
public static void tearDown() throws Exception {

    driver.get(baseUrl + "/RigitalApp.web/cMS.html");
    // Se selecciona la tabla para eliminar todos sus elementos
    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table-striped')]/tbody/tr"));

    /**//from  www.ja v a 2s . c  o m
     * Se itera sobre los elementos de la tabla para eliminarlos
     */
    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));
        elems.get(3).findElement(By.linkText("Eliminar")).click();
        assertTrue(true);
    }

    // Se cierra el navegador.
    driver.quit();
    // Se verifica que se haya cerrado efectivamente el navegador.
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
        fail(verificationErrorString);
    }
}

From source file:co.edu.uniandes.csw.RigitalApp.test.ContenedorWebTest.java

@Test
public void testCrearMaquina() throws Exception {

    driver.findElement(By.xpath("//button[contains(@id,'button-create')]")).click();

    Thread.sleep(2000);// w  w w .j a  va 2 s .c om

    driver.findElement(By.id("name")).clear();

    driver.findElement(By.id("name")).sendKeys("ISIS2603");

    Thread.sleep(2000);

    driver.findElement(By.id("descripcion")).clear();
    driver.findElement(By.id("descripcion")).sendKeys("Glassfish para curso de Aplicaciones");

    Thread.sleep(2000);

    driver.findElement(By.id("fechaCreacion")).clear();
    driver.findElement(By.id("fechaCreacion")).sendKeys("22/11/2014");

    Thread.sleep(2000);

    driver.findElement(By.className("onoffswitch-label")).click();

    Thread.sleep(2000);

    driver.findElement(By.id("fechaVencimiento")).clear();
    driver.findElement(By.id("fechaVencimiento")).sendKeys("20/02/2015");

    Thread.sleep(2000);

    driver.findElement(By.id("puertos")).clear();
    driver.findElement(By.id("puertos")).sendKeys("Puerto de administracin 4234 y puerto de escucha 8080");

    Thread.sleep(2000);

    driver.findElement(By.id("servidor")).clear();
    driver.findElement(By.id("servidor")).sendKeys("157.253.245.39");

    Thread.sleep(2000);

    driver.findElement(By.id("url")).clear();
    driver.findElement(By.id("url")).sendKeys("157.253.353.23:8080");

    Thread.sleep(2000);

    driver.findElement(By.xpath("//button[contains(@id,'button-save')]")).click();

    Thread.sleep(2000);

    WebElement dialog = driver.findElement(By.xpath("//div[contains(@style,'display: block;')]"));

    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table-striped')]/tbody/tr"));
    boolean sucess = false;
    System.out.println(table);

    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(1).getText().equals("ISIS2603") && elems.get(2).getText().equals("22/11/2014")
                && elems.get(3).getText().equals("true")) {

            sucess = true;
        }

    }
    System.out.println(sucess);

    assertTrue(dialog != null && sucess);
}