Selenium webdriver Máscara de CNPJ

3 respostas
T

Boa Tarde!

Estou criando uma ferramenta de automação para realizar vários tipos de testes e validações em campos de fomulários(Cadastro).

Primeiro criei um random de CNPJ, para gerar automaticamente vários valores e inserir no campo apropriado.
Porém após Gerar o CNPJ na hora de inserir no Campo, a formatação não é correta:“58.103.000/1735-72” está fomatação não é válida o correto seria 57.258.103/0001-73

Este é o random para Gerar o CNPJ

public String gerarCnpj() {

int n = 9;

int n1 = gera_random(n);

int n2 = gera_random(n);

int n3 = gera_random(n);

int n4 = gera_random(n);

int n5 = gera_random(n);

int n6 = gera_random(n);

int n7 = gera_random(n);

int n8 = gera_random(n);

int n9 = 0;// gera_random(n);

int n10 = 0;// gera_random(n);

int n11 = 0;// gera_random(n);

int n12 = 1;// gera_random(n);

long d1 = n12 * 2 + n11 * 3 + n10 * 4 + n9 * 5 + n8 * 6 + n7 * 7 + n6 * 8 + n5 * 9 + n4 * 2 + n3 * 3 + n2 * 4 + n1 * 5;

d1 = 11 - (mod(d1, 11));

if (d1 >= 10)

d1 = 0;

long d2 = d1 * 2 + n12 * 3 + n11 * 4 + n10 * 5 + n9 * 6 + n8 * 7 + n7 * 8 + n6 * 9 + n5 * 2 + n4 * 3 + n3 * 4 + n2 * 5 + n1 * 6;

d2 = 11 - (mod(d2, 11));

if (d2 >= 10)

d2 = 0;

licenca.setCnpjCliente("" + n1 + n2 + . + n3 + n4 + n5 + . + n6 + n7 + n8 + / + n9 + n10 + n11 + n12 + - + d1 + d2);

licenca.setCnpjLicenciador("" + n1 + n2 + . + n3 + n4 + n5 + . + n6 + n7 + n8 + / + n9 + n10 + n11 + n12 + - + d1 + d2);

licenciador.setCnpjValidaUrl("" + n1 + n2 + . + n3 + n4 + n5 + . + n6 + n7 + n8 + / + n9 + n10 + n11 + n12 + - + d1 + d2);

return “” + n1 + n2 + . + n3 + n4 + n5 + . + n6 + n7 + n8 + / + n9 + n10 + n11 + n12 + - + d1 + d2;

}
public Integer gera_random(int numero) {
	int random = (int) Math.round(Math.random() * numero);
	return random;
}

public long mod(long dividendo, int divisor) {
	return Math.round(dividendo - (Math.floor(dividendo / divisor) * divisor));
}
Este é o método para inserir o CNPJ no campo:

public void atribuirLicenciador(Licenciador licenciador) {

try {

if (licenciador.getCnpj() != null && !licenciador.getCnpj().equals("")) {

WebElement cnpjLicencor = (new WebDriverWait(driver, 20)).until(ExpectedConditions.visibilityOfElementLocated(<a href="http://By.id">By.id</a>(cnpjLicensor)));

cnpjLicencor.sendKeys(licenciador.getCnpj());

Thread.sleep(500);

}

Alguem já teve um problema parecido com isto?
Obrigada!!

3 Respostas

C

Boa tarde,

Creio que n1 , n2, … n são do tipo inteiro.
Então quando você esta fazendo: “” + n1 + n2 + “.” primeiramente voce estaria somando n1 + n2.
transforme tudo em String: n1 + “” + n2 + “.” + n3 + “” + n4 + “” + n5 + “.” + n6 + “” + n7 + “” + n8 + “/” + n9 + “” + n10 + “” + n11 + “” + n12 + “-” + d1 + “” + d2;

T

Obrigada, vou tentar.

T

Boa Tarde!

Criei um método para transforma em string e o webdriver selenium atribuir ao campo, porém ainda a formatação do cnpj não é correta, assim o campo que possui máscara não aceita.

Então criei outro método para atribuir um cnpj fixo e na formatação correta, mesmo assim, no momento em que o webdriver insere o cnpj a formatação é incorreta.

public void atribuirLicenciador(Licenciador licenciador) {

try {

if (licenciador.getCnpj() != null && !licenciador.getCnpj().equals("")) {WebElement cnpjLicencor = (new WebDriverWait(driver, 20)).until(ExpectedConditions.visibilityOfElementLocated(<a href="http://By.id">By.id</a>(cnpjLicensor)));

cnpjLicencor.sendKeys(<strong>10.522.272/0001-05</strong>);

Thread.sleep(500);

}

veja como ele insere no campo: 20.001.051/0522-27

Outro detalhe, este erro ocorre em máquinas diferentes.

Criado 16 de fevereiro de 2016
Ultima resposta 23 de fev. de 2016
Respostas 3
Participantes 2