Example usage for org.openqa.selenium By xpath

List of usage examples for org.openqa.selenium By xpath

Introduction

In this page you can find the example usage for org.openqa.selenium By xpath.

Prototype

public static By xpath(String xpathExpression) 

Source Link

Usage

From source file:NumOfWHGamesTest.java

@Test
public void testCountNumOfGames() throws NoSuchElementException {

    WebElement game;/* w w  w.j av  a2  s .  co m*/
    String[] hrefArray = new String[500];
    int gameCount = 1;
    String hrefGame;
    String iStr;
    String gamesXPath1 = "html/body/div[2]/div/div/div[2]/div[3]/section/div/div/div/div[";
    String gamesXPath2 = "]/figure/a[1]";
    String gamesCountXPath = "html/body/div[2]/div/div/div[2]/div[3]/section/div/div/div";

    game = driver2.findElement(By.xpath(gamesXPath1 + String.valueOf(1) + gamesXPath2));
    hrefGame = game.getAttribute("href");
    hrefArray[0] = hrefGame;

    while (hrefGame != null) {
        try {
            gameCount++;
            iStr = String.valueOf(gameCount);
            game = driver2.findElement(By.xpath(gamesXPath1 + iStr + gamesXPath2));
            hrefGame = game.getAttribute("href");
            if (hrefGame != null)
                hrefArray[gameCount - 1] = hrefGame;
        } catch (Exception e) {
            hrefGame = null;
        }
    }
    gameCount--;
    // return gameCount;
    int actualNumGames = gameCount;
    int expectedNumGames = numOfGames;
    assertEquals(actualNumGames, expectedNumGames);
}

From source file:IdXPATHDemo.java

public static void main(String[] args) {
    String baseURL = "http://www.google.com";
    System.setProperty("webdriver.gecko.driver",
            "/Users/srijana/Documents/seleniumpractise notes/geckodriver 2");
    WebDriver driver = new FirefoxDriver();

    driver.get(baseURL);//from ww  w  . j  a v  a2  s.  c o  m

    driver.findElement(By.id("lst-ib")).sendKeys("letskodeit");
    driver.findElement(By.xpath("//*[@id='sblsbb']/button")).click();
}

From source file:OrdenDespachoTest.java

@Test
public void testCreateProveedor() throws Exception {

    /**//from www .j  a va 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 ESTADO
     */
    driver.findElement(By.id("estado")).clear();
    driver.findElement(By.id("estado")).sendKeys(estado1);

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

    /**
     * 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(estado1)
                && elems.get(4).getText().equals(nombreItem1)) {
            /**
             * 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:OrdenDespachoTest.java

@Test
public void testUpdateProveedor() throws Exception {

    /**//from ww w. j a  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("estado")).clear();
    driver.findElement(By.id("estado")).sendKeys(estado2);
    driver.findElement(By.id("nombreItem")).clear();
    driver.findElement(By.id("nombreItem")).sendKeys(nombreItem2);

    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(estado2)
                && elems.get(4).getText().equals(nombreItem2)) {
            fail = true;
        }

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

From source file:OrdenDespachoTest.java

@Test
public void testDeleteProveedor() throws Exception {
    /**//from  ww  w  .ja v a2s.  c o  m
     * 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(estado2)
                    && elems.get(4).getText().equals(nombreItem2)) {
                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:OrdenDespachoTest.java

@Test
public void testListProveedores() throws Exception {
    /**//from ww  w . j  a  va2s .com
     * 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(estado1)
                && elems.get(4).getText().equals(nombreItem1)) {
            fail = true;
        }

    }
    assertTrue(fail);
}

From source file:AndroidRemoteDriverTest.java

/**
 * @param args the command line arguments
 *///  w  w  w  . ja  va  2s.  c o m
public static void main(String[] args) {

    AndroidRemoteWebDriver driver = new AndroidRemoteWebDriver("ws://localhost:9222/devtools/page/4");
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.get("http://www.google.com");
    Utils.sleep(2000);
    WebElement elm = driver.findElement(By.name("q"));
    Utils.sleep(2000);
    elm.sendKeys(" // \\ ' * [@id=\"rg_s\"]/div[1]/a ");
    elm.submit();
    //Utils.sleep(2000);
    elm = driver.findElement(By.partialLinkText("Images"));
    elm.click();
    Utils.sleep(2000);
    elm = driver.findElement(By.xpath("//*[@id=\"rg_s\"]/div[1]/a"));
    elm.click();
    Utils.sleep(2000);
    System.out.println("Page source :/n" + driver.getPageSource());

}

From source file:ProductoTest.java

@Test
public void testCreateProveedor() throws Exception {

    /**//  w w w . ja v a2  s.co  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,'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);

    String name = "AAAAAA";
    String tipo = "BBBBBB";
    String precioPromedio = "111111";
    String tiempoPromedio = "222222";
    String cantidadPromedio = "333333";
    String minimoNivelInventario = "4444444";
    /**
     * 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);

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

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

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

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

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

    /**
     * Comandos para llenar el campo minimoNivelInventario
     */
    driver.findElement(By.id("minimoNivelInventario")).clear();
    driver.findElement(By.id("minimoNivelInventario")).sendKeys(minimoNivelInventario);
    /**
     * 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(name) && elems.get(1).getText().equals(tipo)
        //&& elems.get(2).getText().equals("1")
                && elems.get(3).getText().equals(precioPromedio)
                && elems.get(4).getText().equals(tiempoPromedio)
                && elems.get(5).getText().equals(cantidadPromedio)
                && elems.get(6).getText().equals(minimoNivelInventario))

        {
            /**
             * 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:ProductoTest.java

@Test
public void testUpdateProveedor() throws Exception {

    String name = "ZZZZZZ";
    String tipo = "YYYYYY";
    String precioPromedio = "9999999";
    String tiempoPromedio = "8888888";
    String cantidadPromedio = "77777777";
    String minimoNivelInventario = "66666666";

    /**// w w w.ja  v a  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(name);
    driver.findElement(By.id("tipo")).clear();
    driver.findElement(By.id("tipo")).sendKeys(tipo);
    //        driver.findElement(By.id("esPerecedero")).clear();
    //        driver.findElement(By.id("esPerecedero")).sendKeys("1");
    driver.findElement(By.id("precioPromedio")).clear();
    driver.findElement(By.id("precioPromedio")).sendKeys(precioPromedio);
    driver.findElement(By.id("tiempoPromedio")).clear();
    driver.findElement(By.id("tiempoPromedio")).sendKeys(tiempoPromedio);
    driver.findElement(By.id("cantidadPromedio")).clear();
    driver.findElement(By.id("cantidadPromedio")).sendKeys(cantidadPromedio);
    driver.findElement(By.id("minimoNivelInventario")).clear();
    driver.findElement(By.id("minimoNivelInventario")).sendKeys(minimoNivelInventario);

    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(name) && elems.get(1).getText().equals(tipo)
        //&& elems.get(2).getText().equals("1")
                && elems.get(3).getText().equals(precioPromedio)
                && elems.get(4).getText().equals(tiempoPromedio)
                && elems.get(5).getText().equals(cantidadPromedio)
                && elems.get(6).getText().equals(minimoNivelInventario)) {
            fail = true;
        }

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

From source file:ProductoTest.java

@Test
public void testDeleteProveedor() throws Exception {
    /**//w  w w.  ja va2 s  . 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;
        String name = "ZZZZZZ";
        String tipo = "YYYYYY";
        String precioPromedio = "9999999";
        String tiempoPromedio = "8888888";
        String cantidadPromedio = "77777777";
        String minimoNivelInventario = "66666666";
        for (WebElement webElement : table) {
            List<WebElement> elems = webElement.findElements(By.xpath("td"));

            if (elems.get(0).getText().equals(name) && elems.get(1).getText().equals(tipo)
            //&& elems.get(2).getText().equals("1")
                    && elems.get(3).getText().equals(precioPromedio)
                    && elems.get(4).getText().equals(tiempoPromedio)
                    && elems.get(5).getText().equals(cantidadPromedio)
                    && elems.get(6).getText().equals(minimoNivelInventario)) {
                fail = true;
            }

        }

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

}