Testar tamanho de campos input

80 views
Skip to first unread message

Rodrigo De Melo Viana

unread,
Sep 1, 2014, 4:34:46 PM9/1/14
to seleniu...@googlegroups.com
Boa tarde Pessoas,
estou aqui para compartilhar um pequeno método que precisei criar para alguns testes que estava fazendo. No caso estava precisando testar a quantidade de caracteres que um campo do tipo input text era capaz de receber.
Segue o método e sua explicação:

-Então, o método seguinte recebe o caminho xpath do campo que quer realizar o teste, e um número que caso o input text não tenha o atributo : maxlength, será o número de tentivas que serão feitas para tentar encontrar o máximo de caracteres que o campo aceita.

- O método retorna o número inteiro de caracteres que um campo aceita.

- Primeiro ele verifica se o input tem o atributo maxlenght. Se tiver, o valor que o método retorna é o que está no maxlenght convertido para integer.

- Caso não tenha o maxlenght (através de javascript pode se fazer limitação de caracteres em campos), o while vai adicionar um valor no campo até atingir o seu limite. Atingido este limite o método retorna a quantidade de caracteres.

public int getTamanhoCampo(String xpath, int numeroMaximo){
int x = 0;
int cont = 0;
if (driver.findElement(By.xpath(xpath)).getAttribute("maxlength") != null){
cont = Integer.parseInt(driver.findElement(By.xpath(xpath)).getAttribute("maxlength"));
}else{
while(x == cont){
driver.findElement(By.xpath(xpath)).sendKeys("1");
cont = (driver.findElement(By.xpath(xpath)).getAttribute("value")).length();
x = x+1;
if(x == numeroMaximo){
System.out.println("O contador atingiu o número máximo:"+numeroMaximo);
break;
}
}
}

- Uso: Em meu projeto utilizei da seguinte forma nos testes (um exemplo):

Assert.assertEquals(50, telaNovo.getTamanhoCampo("//*[@id='txtMail']", 52));

- Caso o tamanho seja diferente de 50 caracteres o ASSERT dispara um exceção.

é isso pessoal, se alguém tem alguma forma diferente de fazer o mesmo processo, compartilhe para tentarmos achar a melhor forma de fazer este testes..

Obrigado!

Rodrigo De Melo Viana

unread,
Sep 2, 2014, 12:43:51 PM9/2/14
to seleniu...@googlegroups.com
Desculpa pessoal, faltou o restantes do método, estou copiando ele novamente:

public int getTamanhoCampo(String xpath, int numeroMaximo){
int x = 0;
int cont = 0;
if (driver.findElement(By.xpath(xpath)).getAttribute("maxlength") != null){
cont = Integer.parseInt(driver.findElement(By.xpath(xpath)).getAttribute("maxlength"));
}else{
while(x == cont){
driver.findElement(By.xpath(xpath)).sendKeys("1");
cont = (driver.findElement(By.xpath(xpath)).getAttribute("value")).length();
x = x+1;
if(x == numeroMaximo){
System.out.println("O contador atingiu o número máximo:"+numeroMaximo);
break;
}
}

}
return cont;
Reply all
Reply to author
Forward
0 new messages