Formatação CNPJ

Continuando a discussão do Selenium webdriver Máscara de CNPJ:
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(By.id(“cnpjLicensor”)));
cnpjLicencor.sendKeys(“10.522.272/0001-05”);
Thread.sleep(500);
}

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

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

`
package classes;

import java.util.InputMismatchException;

/**
*

  • @author Fabio Daros
    */

public class ValidaCNPJ {
public static boolean isCNPJ(String CNPJ) {
// considera-se erro CNPJ’s formados por uma sequencia de numeros iguais
if (CNPJ.equals(“00000000000000”) || CNPJ.equals(“11111111111111”) ||
CNPJ.equals(“22222222222222”) || CNPJ.equals(“33333333333333”) ||
CNPJ.equals(“44444444444444”) || CNPJ.equals(“55555555555555”) ||
CNPJ.equals(“66666666666666”) || CNPJ.equals(“77777777777777”) ||
CNPJ.equals(“88888888888888”) || CNPJ.equals(“99999999999999”) ||
(CNPJ.length() != 14))
return(false);

char dig13, dig14;
int sm, i, r, num, peso;


try {

  sm = 0;
  peso = 2;
  for (i=11; i>=0; i--) {

    num = (int)(CNPJ.charAt(i) - 48);
    sm = sm + (num * peso);
    peso = peso + 1;
    if (peso == 10)
       peso = 2;
  }

  r = sm % 11;
  if ((r == 0) || (r == 1))
     dig13 = '0';
  else dig13 = (char)((11-r) + 48);

// Calculo do 2o. Digito Verificador
sm = 0;
peso = 2;
for (i=12; i>=0; i–) {
num = (int)(CNPJ.charAt(i)- 48);
sm = sm + (num * peso);
peso = peso + 1;
if (peso == 10)
peso = 2;
}

  r = sm % 11;
  if ((r == 0) || (r == 1))
     dig14 = '0';
  else dig14 = (char)((11-r) + 48);

// Verifica se os dígitos calculados conferem com os dígitos informados.
if ((dig13 == CNPJ.charAt(12)) && (dig14 == CNPJ.charAt(13)))
return(true);
else return(false);
} catch (InputMismatchException erro) {
return(false);
}
}

public static String imprimeCNPJ(String CNPJ) {
// máscara do CNPJ: 99.999.999.9999-99
return(CNPJ.substring(0, 2) + “.” + CNPJ.substring(2, 5) + “.” +
CNPJ.substring(5, 8) + “/” + CNPJ.substring(8, 12) + “-” +
CNPJ.substring(12, 14));
}
}
`

Oi Ana!

Pelo o que vi a máscara está certa, mas está inserindo com números diferentes.
O que acontece quando é inserido apenas números?
Você está usando qual browser? existia um problema similar (caracteres especiais) em uma versão antiga do ChromeDriver, veja em outro browser para certificar-se.
Tente realizar a mesma ação utilizando a classe Actions.
Qualquer coisa dá um grito ai :wink: