List of usage examples for org.openqa.selenium By xpath
public static By xpath(String xpathExpression)
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); } }