Skip to content

Instantly share code, notes, and snippets.

@douglasmartins7
Last active March 24, 2017 20:27
Show Gist options
  • Save douglasmartins7/4e758f407f9d36fe89cffef4c87eaccb to your computer and use it in GitHub Desktop.
Save douglasmartins7/4e758f407f9d36fe89cffef4c87eaccb to your computer and use it in GitHub Desktop.
public void OrigemComAjax(String origem, WebDriver driver){
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // define o tempo de espera maximo para o carregamento de um elemento da pagina.
WebElement campoOrigem = driver.findElement(By.cssSelector("input[class='from txtOrigin grid-full autocomplete_empty']"));
campoOrigem.sendKeys(origem);
int limiteTentativas = 0;
while(this.validarRetornoAjaxOrigem(driver)){
System.out.println("aguardando o preenchimento - tentativa "+limiteTentativas);
limiteTentativas ++;
if(limiteTentativas == 3){
Assert.fail("Após 3 tentativas, não foi possivel encontrar as origens"
+ " para o destino digitado");
break;
}
}
}
public boolean validarRetornoAjaxOrigem(WebDriver driver){
List<String> origensRetornadas = new ArrayList<String>(); // é usado la embaixo.
WebElement div = driver.findElement(By.className("dbBody")); //essa é a div usada pelo ajax
List<WebElement> tables = div.findElements(By.className("dbTbBody")); //essa é a table onde entram os destinos.
//Porém existem outras tables com a mesma propriedade no html,
//por isso estou pegando todas.
for(WebElement table : tables){ //esse For e o de baixo trabalha como uma especie de matriz para achar os destinos.
List<WebElement> origens = table.findElements(By.xpath("//tbody/tr[@class='trPesqInc']/td"));
for(WebElement origem : origens){
if(!origem.getText().isEmpty()){ // haverá varios objetos em branco entre os ojetos contendo os destinos, por isso valido que nao esta vazio
origensRetornadas.add(origem.getText().trim()); // se nao for uma string vazia, insere o conteudo nessa Lista
}
System.out.println(origem.getText()); // isso aqui pode tirar se quiser. Atenção o primeiro objeto da lista não é impresso aqui, só do segundo em diante
}
}
return origensRetornadas.isEmpty(); // aqui O MAIS IMPORTANTE, retorna se o Ajax preencheu ou não.
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment