Last active
March 24, 2017 20:27
-
-
Save douglasmartins7/4e758f407f9d36fe89cffef4c87eaccb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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