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:OrdenReaprovisionamientoTest.java

@Test
public void testCreateProveedor() throws Exception {

    /**// w w w.j  a  v a  2 s .  c om
     * 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,'createButton')]")).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(name1);

    //Comandos para llenar el campo fecha
    driver.findElement(By.id("fecha")).clear();
    driver.findElement(By.id("fecha")).sendKeys(fecha1);

    //Comando para seleccionar el checkbox
    //       driver.findElement(By.id("esPerecedero")).click();

    /**
     * Comandos para llenar el campo cantidad
     */
    driver.findElement(By.id("cantidad")).clear();
    driver.findElement(By.id("cantidad")).sendKeys(cantidad1);

    /**
     * Comandos para llenar el campo nombreProducto
     */
    driver.findElement(By.id("nombreProducto")).clear();
    driver.findElement(By.id("nombreProducto")).sendKeys(nombreProducto1);

    /**
     * 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,'saveButton')]")).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(name1)
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[0]) == (Integer.parseInt(fecha1.split("/")[0]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[1]) == (Integer.parseInt(fecha1.split("/")[1]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[2]) == (Integer.parseInt(fecha1.split("/")[2]))
                && elems.get(2).getText().equals(cantidad1) && elems.get(3).getText().equals(nombreProducto1)) {
            /**
             * 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:OrdenReaprovisionamientoTest.java

@Test
public void testUpdateProveedor() throws Exception {

    /**/*from   www .  ja  va 2 s  .c o  m*/
     * Se hace clic en el vinculo "Edit" del primer elemento de la lista de
     * sports
     */
    driver.findElement(By.linkText("Editar")).click();
    Thread.sleep(2000);
    /**
     * Se realiza el mismo proceso de diligenciamento de los campos con los
     * cambios
     */
    driver.findElement(By.id("name")).clear();
    driver.findElement(By.id("name")).sendKeys(name2);
    driver.findElement(By.id("fecha")).clear();
    driver.findElement(By.id("fecha")).sendKeys(fecha2);
    driver.findElement(By.id("cantidad")).clear();
    driver.findElement(By.id("cantidad")).sendKeys(cantidad2);
    driver.findElement(By.id("nombreProducto")).clear();
    driver.findElement(By.id("nombreProducto")).sendKeys(nombreProducto2);

    driver.findElement(By.xpath("//button[contains(@id,'saveButton')]")).click();
    Thread.sleep(2000);
    /**
     * Se verifica que en la lista de respuesta hallan aparecido los cambios
     * en el elemento y tambin el mensaje de edicin exitosa.
     */
    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 fail = false;
    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(0).getText().equals(name2)
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[0]) == (Integer.parseInt(fecha2.split("/")[0]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[1]) == (Integer.parseInt(fecha2.split("/")[1]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[2]) == (Integer.parseInt(fecha2.split("/")[2]))
                && elems.get(2).getText().equals(cantidad2) && elems.get(3).getText().equals(nombreProducto2)) {
            fail = true;
        }

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

From source file:OrdenReaprovisionamientoTest.java

@Test
public void testDeleteProveedor() throws Exception {
    /**//from  w  w  w  . j av  a 2s . c om
     * Se hace clic en el vinculo "Delete" del primer elemento de la lista
     * de sports
     */
    driver.findElement(By.linkText("Eliminar")).click();
    Thread.sleep(2000);
    /**
     * Se verifica que en la lista el elemento halla desaparecido. Si
     * existe, hubo un error.
     */
    try {
        List<WebElement> table = driver
                .findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr"));
        boolean fail = false;

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

            if (elems.get(0).getText().equals(name2)
                    && Integer.parseInt(
                            elems.get(1).getText().split("/")[0]) == (Integer.parseInt(fecha2.split("/")[0]))
                    && Integer.parseInt(
                            elems.get(1).getText().split("/")[1]) == (Integer.parseInt(fecha2.split("/")[1]))
                    && Integer.parseInt(
                            elems.get(1).getText().split("/")[2]) == (Integer.parseInt(fecha2.split("/")[2]))
                    && elems.get(2).getText().equals(cantidad2)
                    && elems.get(3).getText().equals(nombreProducto2)) {
                fail = true;
            }

        }

        WebElement dialog = driver.findElement(By.xpath("//div[contains(@style,'display: block;')]"));
        assertTrue(dialog != null && !fail);
    } catch (Exception e) {
        assertTrue(true);
    }

}

From source file:OrdenReaprovisionamientoTest.java

@Test
public void testListProveedores() throws Exception {
    /**/*from  w  ww .j  a va  2s  .  c  o m*/
     * Se crea un deporte con el test createSport
     */
    testCreateProveedor();

    /**
     * Se hace clic en el botn "refresh" del toolbar para obtener la lista.
     */
    driver.findElement(By.xpath("//button[contains(@id,'refreshButton')]")).click();
    Thread.sleep(2000);
    /**
     * Se verifica que el elemento creado anteriormente existe en la lista.
     */
    List<WebElement> table = driver
            .findElements(By.xpath("//table[contains(@class,'table striped')]/tbody/tr"));
    boolean fail = false;
    for (WebElement webElement : table) {
        List<WebElement> elems = webElement.findElements(By.xpath("td"));

        if (elems.get(0).getText().equals(name1)
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[0]) == (Integer.parseInt(fecha1.split("/")[0]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[1]) == (Integer.parseInt(fecha1.split("/")[1]))
                && Integer.parseInt(
                        elems.get(1).getText().split("/")[2]) == (Integer.parseInt(fecha1.split("/")[2]))
                && elems.get(2).getText().equals(cantidad1) && elems.get(3).getText().equals(nombreProducto1)) {
            fail = true;
        }

    }
    assertTrue(fail);
}

From source file:ValidSubmission.java

public static void ThenJobsTitle_ShortDesc_FullDescIs() {
    // int j =0;//from  www.  j  av  a  2s. c o m
    // Grab the table 
    WebElement table = driver.findElement(By.id("jobListings"));

    //Get number of rows in table 
    int numOfRow = table.findElements(By.tagName("tr")).size();
    List<String> jobLinkUrl = new ArrayList(numOfRow);

    for (int j = 1; j <= (numOfRow - 2); j = (j + 2)) {

        String first_part_jobShortDesc_xpath = "//*[@id='jobListings']/tbody/tr[";
        String second_part_jobShortDesc_xpath = "]/td/span";

        String first_part_jobLinkTitle_xpath = "//*[@id='jobListings']/tbody/tr[";
        String second_part_jobLinkTitle_xpath = "]/td/a";

        String first_part_jobLinkUrl_xpath = "//*[@id='jobListings']/tbody/tr[";
        String second_part_jobLinkUrl_xpath = "]/td/a";

        WebElement webJobLinkUrl = driver
                .findElement(By.xpath(first_part_jobLinkUrl_xpath + (j + 2) + second_part_jobLinkUrl_xpath));
        jobLinkUrl.add(webJobLinkUrl.getAttribute("href"));
        //                   
        String final_jobLinkTitle_xpath = first_part_jobLinkTitle_xpath + (j + 2)
                + second_part_jobLinkTitle_xpath;
        String final_jobShortDesc_xpath = first_part_jobShortDesc_xpath + (j + 3)
                + second_part_jobShortDesc_xpath;

        WebElement webJobLinkTitle = driver.findElement(By.xpath(final_jobLinkTitle_xpath));
        String jobLinkTitle = webJobLinkTitle.getText();

        WebElement webJobShortDesc = driver.findElement(By.xpath(final_jobShortDesc_xpath));
        String jobShortDesc = webJobShortDesc.getAttribute("innerHTML");

        System.out.println("Job Title = " + jobLinkTitle);
        System.out.println();

        System.out.println("Short Description of Job = " + jobShortDesc);
        System.out.println();

        System.out.println("Link URL of Job" + jobLinkUrl);
        System.out.println();
    }

    //        // GoTo 'Full Job Description'
    for (int i = 0; i < jobLinkUrl.size(); i++) {

        driver.navigate().to(jobLinkUrl.get(i));
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        //          
        WebElement webJobFullDescData = driver
                .findElement(By.xpath("//*[@id='jobDetails']/div[2]/table/tbody/tr[1]/td"));
        String jobFullDescData = webJobFullDescData.getText();
        //     
        System.out.println("Job Full Description Data" + jobFullDescData);
        System.out.println();

    }
}

From source file:CarTest1.java

@Test
//Verify that page is loaded and all expected data are visible
public void test1() throws Exception {
    (new WebDriverWait(driver, WAIT_MAX)).until((ExpectedCondition<Boolean>) (WebDriver d) -> {
        WebElement e = d.findElement(By.tagName("tbody"));
        List<WebElement> rows = e.findElements(By.tagName("tr"));
        Assert.assertThat(rows.size(), is(5));
        return true;
    });/*from  www.j  a  v a2s .c o  m*/
}

From source file:CarTest1.java

@Test
//Verify the filter functionality 
public void test2() throws Exception {
    //No need to WAIT, since we are running test in a fixed order, we know the DOM is ready (because of the wait in test1)
    WebElement element = driver.findElement(By.id("filter"));
    element.sendKeys("2002");
    WebElement e = driver.findElement(By.tagName("tbody"));
    List<WebElement> rows = e.findElements(By.tagName("tr"));
    Assert.assertThat(rows.size(), is(2));
}

From source file:CarTest1.java

@Test
//Clear text and verify 5 rows
public void test3() throws Exception {
    tearDown();//from   w  w  w.  jav  a 2  s . c  om
    setup();
    (new WebDriverWait(driver, WAIT_MAX)).until((ExpectedCondition<Boolean>) (WebDriver d) -> {
        WebElement e = d.findElement(By.tagName("tbody"));
        List<WebElement> rows = e.findElements(By.tagName("tr"));
        Assert.assertThat(rows.size(), is(5));
        return true;
    });
}

From source file:CarTest1.java

@Test
public void test5() throws Exception {

    WebElement row = driver.findElement(By.xpath("//tbody/tr[td='938']"));
    WebElement a = row.findElements(By.tagName("a")).get(0);
    a.click();//from  w  w  w  .ja  v a 2s .  c  o m
    WebElement desc = driver.findElement(By.name("description"));
    desc.clear();
    desc.sendKeys("Cool car");

    WebElement submit = driver.findElement(By.id("save"));
    submit.click();

    (new WebDriverWait(driver, WAIT_MAX)).until((ExpectedCondition<Boolean>) (WebDriver d) -> {
        WebElement newRow = d.findElement(By.xpath("//tbody/tr[td = '938']"));
        String b = newRow.findElements(By.tagName("td")).get(5).getText();
        Assert.assertEquals("Cool car", b);
        return true;
    });
}

From source file:CarTest1.java

@Test
public void test6() throws Exception {
    WebElement newCar = driver.findElement(By.id("new"));
    newCar.click();/* w ww.  ja  v a2  s.c  o  m*/
    WebElement submit = driver.findElement(By.id("save"));
    submit.click();

    WebElement e = driver.findElement(By.tagName("tbody"));
    List<WebElement> rows = e.findElements(By.tagName("tr"));
    Assert.assertTrue(driver.findElement(By.id("submiterr")).isDisplayed());
    Assert.assertEquals("All fields are required", driver.findElement(By.id("submiterr")).getText());
    Assert.assertThat(rows.size(), is(5));
}