List of usage examples for org.openqa.selenium By id
public static By id(String id)
From source file:cn.aozhi.songify.functional.gui.UserAdminFT.java
License:Apache License
@Test public void editUser() { s.open("/admin/user/update/2"); s.type(By.id("name"), "Kevin"); s.type(By.id("plainPassword"), "user2"); s.type(By.id("confirmPassword"), "user2"); s.click(By.id("submit_btn")); assertThat(s.isTextPresent("user?")).as("??").isTrue(); WebElement table = s.findElement(By.id("contentTable")); assertThat(s.getTable(table, 1, 1)).isEqualTo("Kevin"); }
From source file:co.edu.icesi.i2t.slrtools.bib.transformations.TransformBibACM.java
License:Open Source License
/** * Funcion principal para la transformacion de los archivos html en un solo * arhivo consolidado BIB, la funcion se encarga de extraer del html cada * link de articulo, despues de tener el listado de url se dispone con la * ayuda de selenium webdriver el ingreso a cada url y descargar el BIBtex * para finalizar con la union de todos en un solo archivo BIB * * @param sourceFilesPath String con la ruta de la carpeta donde se * encuentran los archivos html a transformas * @param targetFilePath String con la ruta fisica del directorio donde se * guardara el archivo consolodidao//from ww w . j ava2 s. c o m * @param targetFileName */ public static boolean transformFiles(String sourceFilesPath, String targetFilePath, String targetFileName) { boolean bibFileCreated = false; System.out.println(""); System.out.println("-----------------------------"); System.out.println("Generating BibTeX for ACM Digital Library results..."); System.out.println(""); String bibContent = ""; List<String> urls = extractURL(sourceFilesPath); FirefoxProfile profile = new FirefoxProfile(); WebDriver webDriver = new FirefoxDriver(profile); for (int i = 0; i < urls.size(); i++) { try { System.out.println("[INFO] Retrieving BibTeX from URL: " + urls.get(i)); String idFile = urls.get(i).split("id=")[1].split("&")[0]; idFile = idFile.substring(idFile.indexOf(".") + 1, idFile.length()); String url = (urls.get(i)); webDriver.get(url); WebElement bibField = (new WebDriverWait(webDriver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.linkText("BibTeX"))); try { Thread.sleep(2000); } catch (InterruptedException e) { } bibField.click(); WebElement textBib = (new WebDriverWait(webDriver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id(idFile))); String reference = textBib.getText(); String referenceAbstract = webDriver.findElement(By.id("abstract")).getText(); referenceAbstract = "abstract = {" + referenceAbstract + "}}" + System.lineSeparator(); bibContent += reference.substring(0, reference.length() - 2) + referenceAbstract; //Thread.sleep(10000); //tempurl.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); } catch (TimeoutException e) { System.out.println( "[ERROR] Failed to retrieve BibTex. The application may have been blocked by ACM Digital Library. Try again later."); } catch (Exception e) { System.out.println("[ERROR] Failed to retrieve BibTeX. " + e.getMessage()); } } webDriver.quit(); try { saveBibFile(bibContent, targetFilePath, targetFileName); if (!bibContent.equals("")) { bibFileCreated = true; } } catch (Exception e) { System.out.println("[ERROR] Failed to create BibTeX file." + e.getMessage()); } System.out.println("-----------------------------"); return bibFileCreated; }
From source file:co.edu.icesi.i2t.slrtools.webdrivers.WebDriverIEEEComputerScience.java
License:Open Source License
/** * /*from www .j a v a2s . c o m*/ * @param cadenasBusqueda * @param direccionBusqueda */ public static void searchWeb(String cadenasBusqueda, String direccionBusqueda) { /* a esta funcion se debe mejorar * 1: automatizar las preferencias para la descarga automatica * 2: la ruta de descarga * 3: el cierre del navegador al finalizar la ultima descarga*/ System.out.println("----------inicia busqueda web IEEE Computer Society----------"); System.out.println("Cadena de palabras a buscar: " + cadenasBusqueda); System.out.println("------------------------------------------------------"); FirefoxProfile profile = new FirefoxProfile(); WebDriver url = new FirefoxDriver(profile); String[] lcadenasBusqueda = cadenasBusqueda.split(";"); for (int i = 0; i < lcadenasBusqueda.length; i++) { try { url.get(direccionBusqueda); WebElement searchField = url.findElement(By.name("queryText1")); WebElement buttonSearch = url.findElement(By.id("searchButton")); searchField.click(); searchField.sendKeys(lcadenasBusqueda[i]); buttonSearch.click(); WebElement selectField = url.findElement(By.id("select1")); WebElement buttonField = url.findElement(By.id("form1Button")); selectField.sendKeys("100"); buttonField.click(); try { WebElement stringResult = url .findElement(By.xpath("//div[contains(@class, 'searchwhitebox')]")); System.out.println("Busqueda: " + i + " cadena de busqueda:" + lcadenasBusqueda[i] + " - " + stringResult.getText()); //String sourceCode=url.getPageSource(); //PrintWriter archivo = new PrintWriter("busquedasIEEECS/"+lcadenasBusqueda[i]+".html", "UTF-8"); //archivo.print(sourceCode); //archivo.close(); } catch (Exception e) { System.out.println("[OJO]" + " Busqueda: " + i + " la cadena de busqueda: " + lcadenasBusqueda[i] + " no trae resultados"); } } catch (Exception e) { System.out .println("excepcion busqueda cadena: " + lcadenasBusqueda[i] + " , motivo excepcion: " + e); } } //url.quit(); System.out.println("----------fin busqueda web IEEE Computer Society----------"); }
From source file:co.edu.icesi.i2t.slrtools.webdrivers.WebDriverIEEEXplore.java
License:Open Source License
/** * Funcion que se encarga de realizar automaticamente la busqueda en la base * de datos IEEEXplore conforme a una cadena de busqueda introducida, la * automatizacion nos permite descargar los CSV que IEEEXplore dispone con * el resultaod de las busquedas, la ruta donde se guardan los archivos * dependen de la seleccin del usuario, si por alguna razon el resultado de * la busqueda es mayor a 2000 datos, el buscador solo deja descargar los * primeros 2000 ordenados por importancia de acuerdo a las politicas de * IEEEXplore, los archivos descargados posteriormente son procesadas para * la construccion del BIB con los resultados obtenidos. * * @param searchStrings este parametro es la cadena de busqueda que retorna * la funcion mixIEEEXplore#mixWords, cada cadena de busqueda esta separada * por ;/*w ww .java 2s.co m*/ * @param url este paremetro es el URL de la busqueda avanzada de IEEEXplore * @see mixWords.mixIEEEXplore#mixWords(java.lang.String, java.lang.String) */ public static void searchWeb(String searchStrings, String url) { System.out.println(""); System.out.println("-----------------------------"); System.out.println("Searching IEEE Xplore Digital Library..."); System.out.println("Search strings: " + searchStrings + ""); System.out.println(""); String workingDir = System.getProperty("user.dir"); File targetDirectory = new File("files" + File.separator + Database.IEEE_XPLORE.getName()); targetDirectory.mkdir(); FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("browser.download.folderList", 2); profile.setPreference("browser.download.manager.showWhenStarting", false); profile.setPreference("browser.download.dir", workingDir + File.separator + "files" + File.separator + Database.IEEE_XPLORE.getName()); profile.setPreference("browser.download.useDownloadDir", true); profile.setPreference("browser.helperapps.neverAsk.saveToDisk", "application/x-latex;text/csv"); profile.setPreference("browser.helperApps.alwaysAsk.force", false); profile.setPreference("browser.download.manager.alertOnEXEOpen", false); profile.setPreference("browser.download.manager.closeWhenDone", true); WebDriver webDriver = new FirefoxDriver(profile); String[] strings = searchStrings.split(";"); for (int i = 0; i < strings.length; i++) { try { webDriver.get(url); WebElement searchField = webDriver.findElement(By.id("expression-textarea")); WebElement buttonSearch = webDriver.findElement(By.id("submit-search")); try { Thread.sleep(1000); } catch (InterruptedException e) { } searchField.click(); searchField.sendKeys(strings[i]); try { Thread.sleep(1000); } catch (InterruptedException e) { } buttonSearch.click(); try { WebElement exportField = (new WebDriverWait(webDriver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("popup-export-results"))); WebElement stringResult = webDriver .findElement(By.xpath("//div[contains(@id, 'content')]/span")); try { Thread.sleep(1000); } catch (InterruptedException e) { } exportField.click(); System.out.println("[INFO] Search string " + (i + 1) + " " + strings[i] + " " + stringResult.getText()); WebElement exportButton = (new WebDriverWait(webDriver, 10)) .until(ExpectedConditions.presenceOfElementLocated(By.id("export_results_ok"))); exportButton.click(); } catch (Exception e) { System.out.println( "[WARNING] Search string " + (i + 1) + " " + strings[i] + " retrieves no results"); } } catch (Exception e) { System.out.println( "[ERROR] Search string " + (i + 1) + " " + strings[i] + " failed. " + e.getMessage()); } try { Thread.sleep(5000); } catch (InterruptedException e) { } } // webDriver.quit(); System.out.println("[INFO] Finished search in IEEE Xplore Digital Library"); System.out.println("-----------------------------"); }
From source file:co.edu.icesi.i2t.slrtools.webdrivers.WebDriverScienceDirect.java
License:Open Source License
/** * Funcion que se encarga de realizar automaticamente la busqueda en la base * de datos ScienceDirect conforme a una cadena de busqueda introducida, la * automatizacion nos permite descargar los BIB que ScienceDirect dispone * con el resultaod de las busquedas, la ruta donde se guardan losr archivos * dependen de la seleccin del usuario, si por alguna razon el resultado de * la busqueda es mayor a 1000 datos, el buscador solo deja descargar los * primeros 1000 ordenados por importancia de acuerdo a las politicas de * ScienceDirect, los archivos descargados posteriormente son procesadas * para la construccion del BIB consolodidado con los resultados obtenidos. * * @param searchStrings este parametro es la cadena de busqueda que retorna * la funcion mixScienceDirect#mixWords, cada cadena de busqueda esta * separada por ;/*from w w w. ja va 2 s.c om*/ * @param url este paremetro es el URL de la busqueda experta de * ScienceDirect * @see mixWords.mixScienceDirect#mixWords(java.lang.String, * java.lang.String) */ public static void searchWeb(String searchStrings, String url) { System.out.println(""); System.out.println("-----------------------------"); System.out.println("Searching Science Direct..."); System.out.println("Search strings: " + searchStrings + ""); System.out.println(""); String workingDir = System.getProperty("user.dir"); File targetDirectory = new File("files" + File.separator + Database.SCIENCE_DIRECT.getName()); targetDirectory.mkdir(); FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("browser.download.folderList", 2); profile.setPreference("browser.download.manager.showWhenStarting", false); profile.setPreference("browser.download.dir", workingDir + File.separator + "files" + File.separator + Database.SCIENCE_DIRECT.getName()); profile.setPreference("browser.download.useDownloadDir", true); profile.setPreference("browser.helperapps.neverAsk.saveToDisk", "application/x-latex;text/csv"); profile.setPreference("browser.helperApps.alwaysAsk.force", false); profile.setPreference("browser.download.manager.alertOnEXEOpen", false); profile.setPreference("browser.download.manager.closeWhenDone", true); profile.setPreference("browser.download.panel.shown", true); WebDriver webDriver = new FirefoxDriver(profile); String[] strings = searchStrings.split(";"); for (int i = 0; i < strings.length; i++) { try { webDriver.get(url); WebElement searchField = webDriver.findElement(By.name("SearchText")); // WebElement searchField = (new WebDriverWait(webDriver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.name("SearchText"))); WebElement submitSearch = webDriver.findElement(By.name("RegularSearch")); // WebElement submitSearch = (new WebDriverWait(webDriver, 10)).until(ExpectedConditions.presenceOfElementLocated(By.name("RegularSearch"))); try { Thread.sleep(10000); } catch (InterruptedException e) { } searchField.click(); searchField.sendKeys(strings[i]); try { Thread.sleep(10000); } catch (InterruptedException e) { } submitSearch.click(); try { WebElement exportButton = (new WebDriverWait(webDriver, 10)).until(ExpectedConditions .presenceOfElementLocated(By.cssSelector("span.down_sci_dir.exportArrow"))); WebElement stringResult = webDriver .findElement(By.xpath("//h1[contains(@class, 'queryText')]/strong")); try { Thread.sleep(10000); } catch (InterruptedException e) { } exportButton.click(); System.out.println("[INFO] Search string " + (i + 1) + " " + strings[i] + " " + stringResult.getText()); WebElement bibTex = webDriver.findElement(By.id("BIBTEX")); bibTex.click(); WebElement export = webDriver.findElement(By.id("export_button")); export.click(); } catch (Exception e) { System.out.println( "[WARNING] Search string " + (i + 1) + " " + strings[i] + " retrieves no results"); } } catch (Exception e) { System.out.println( "[ERROR] Search string " + (i + 1) + " " + strings[i] + " failed. " + e.getMessage()); } try { Thread.sleep(5000); } catch (InterruptedException e) { } } // webDriver.quit(); System.out.println("[INFO] Finished search in Science Direct"); System.out.println("-----------------------------"); }
From source file:co.edu.uniandes.Callys.web.test.CallysTest.java
@Test public void t1createStamp() throws Exception { boolean success = false; driver.findElement(By.id("stamp")).click(); Thread.sleep(3000);/*from ww w . j av a 2s. c om*/ driver.findElement(By.id("upload")).click(); Thread.sleep(1000); driver.findElement(By.id("name")).clear(); driver.findElement(By.id("price")).clear(); driver.findElement(By.id("name")).sendKeys("Estampa"); driver.findElement(By.id("price")).sendKeys("20"); driver.findElement(By.id("saveStamp")).click(); Thread.sleep(2000); driver.findElement(By.id("stamp")).click(); /** List<WebElement> rows =driver.findElements(By.xpath("//div[contains(@id,'Container')]/div")); for (WebElement webElement : rows) { List<WebElement> elems = webElement.findElements(By.xpath("td")); if (elems.get(4).getText().equals("Estampa") && elems.get(5).getText().equals("20")) { success = true; } } */ success = true; assertTrue(success); Thread.sleep(2000); }
From source file:co.edu.uniandes.Callys.web.test.CallysTest.java
@Test public void t2deleteStamp() throws Exception { boolean success = false; driver.findElement(By.id("stamp")).click(); Thread.sleep(3000);/*ww w.j a v a 2 s . c o m*/ driver.findElement(By.id("name")).equals("Estampa"); driver.findElement(By.id("delete")).click(); Thread.sleep(2000); success = true; assertTrue(success); Thread.sleep(2000); }
From source file:co.edu.uniandes.Callys.web.test.CallysTest.java
@Test public void t3likeStamp() throws Exception { boolean success = false; driver.findElement(By.id("stamp")).click(); Thread.sleep(3000);/*from w w w .j a v a2 s . c o m*/ driver.findElement(By.id("name")).equals("Estampa"); driver.findElement(By.id("like")).click(); Thread.sleep(2000); success = true; assertTrue(success); Thread.sleep(2000); }
From source file:co.edu.uniandes.Callys.web.test.CallysTest.java
@Test public void t4dislikeStamp() throws Exception { boolean success = false; driver.findElement(By.id("stamp")).click(); Thread.sleep(3000);// w ww .ja v a 2s . c om driver.findElement(By.id("name")).equals("Estampa"); driver.findElement(By.id("dislike")).click(); Thread.sleep(2000); success = true; assertTrue(success); Thread.sleep(2000); }
From source file:co.edu.uniandes.Callys.web.test.CallysTest.java
@Test public void t5editStamp() throws Exception { boolean success = false; driver.findElement(By.id("stamp")).click(); Thread.sleep(3000);// w w w . ja va 2 s . co m driver.findElement(By.id("name")).equals("Estampa"); driver.findElement(By.id("edit")).click(); Thread.sleep(2000); /* driver.findElement(By.id("name")).equals("Estampa"); driver.findElement(By.id("price")).equals("20"); */ driver.findElement(By.id("name")).clear(); driver.findElement(By.id("price")).clear(); driver.findElement(By.id("name")).sendKeys("Flash"); driver.findElement(By.id("price")).sendKeys("35"); driver.findElement(By.id("saveStamp")).click(); driver.findElement(By.id("stamp")).click(); Thread.sleep(2000); success = true; assertTrue(success); Thread.sleep(2000); }