I do not know how Selenium
works, but apparently Ricardo has already answered the question of how to get CPF
from the site.
Now, to generate in your own application, in Java
, you should follow some rules, which are available on some sites, such as this .
I've passed the site to code in an extremely basic way:
class GeradorDeCPF {
public static void main(String[] args) {
int[][] CPFArray = new int[11][3];
// PREENCHA O CPF ABAIXO, OU NA EXECUCAO DO PROGRAMA
// String CPFString = "111444777";
String CPFString = args[0];
/*
* LACO PARA TRANSFORMAR O CPF NUM ARRAY DE INTEIROS
* INCLUIR OS NUMEROS MULTIPLICADORES E FAZER A CONTA
*/
for (int i = 0; i < CPFString.length(); i++) {
// CONVERTE CHAR PARA INT E ATRIBUI AO ARRAY
CPFArray[i][0] = Character.getNumericValue(CPFString.charAt(i));
// ATRIBUI MULTIPLICADOR AO ARRAY
CPFArray[i][1] = 10-i;
// EXECUTA A MULTIPLICACAO
CPFArray[i][2] = CPFArray[i][0] * CPFArray[i][1];
}
// SOMA TODOS OS RESULTADOS
int somaResultados = 0;
for (int i = 0; i < 9; i++) {
somaResultados += CPFArray[i][2];
}
// CALCULA MODULO
int moduloDigito1 = somaResultados % 11;
int digito1 = 0;
/*
* SE O MODULO FOR MENOR QUE DOIS, TRANSFORMAR EM ZERO
* CASO NAO SEJA, SUBTRAIR DE 11 PARA OBTER O PRIMEIRO DIGITO
*/
if (moduloDigito1 < 2) {
digito1 = 0;
} else {
digito1 = 11 - moduloDigito1;
}
// INCLUI O PRIMEIRO DIGITO NO FINAL DO CPF
CPFArray[9][0] = digito1;
// ALTERA OS MULTIPLICADORES
for (int i = 0; i < 10; i++) {
// ATRIBUI MULTIPLICADOR AO ARRAY
CPFArray[i][1] = 11-i;
// EXECUTA A MULTIPLICACAO
CPFArray[i][2] = CPFArray[i][0] * CPFArray[i][1];
}
// SOMA TODOS OS RESULTADOS
int somaResultados2 = 0;
for (int i = 0; i < 10; i++) {
somaResultados2 += CPFArray[i][2];
}
// CALCULA MODULO
int moduloDigito2 = somaResultados2 % 11;
int digito2 = 0;
/*
* SE O MODULO FOR MENOR QUE DOIS, TRANSFORMAR EM ZERO
* CASO NAO SEJA, SUBTRAIR DE 11 PARA OBTER O PRIMEIRO DIGITO
* (E IMPRIME)
*/
if (moduloDigito2 < 2) {
digito2 = 0;
} else {
digito2 = 11 - moduloDigito2;
}
// INCLUI O PRIMEIRO DIGITO NO FINAL DO CPF
CPFArray[10][0] = digito2;
// IMPRIME CPF COM DIGITOS
System.out.print("Digitos verificadores: ");
System.out.print(CPFArray[9][0] + "" + CPFArray[10][0] + "\n");
}
}
Here's the run:
Now,ifyouwantaCPF
random,you'llhavetomakesomechanges.Importtheseclassesatthebeginning:
importjava.util.concurrent.ThreadLocalRandom;importjava.text.DecimalFormat;
AndchangeCPFString
to:
intCPFInt=ThreadLocalRandom.current().nextInt(0,999999999+1);DecimalFormatformatador=newDecimalFormat("000000000");
String CPFString = formatador.format(CPFInt);
Result:
Remember that this code is just a start (you CAN ENOUGH ENOUGH), and you still need to make it run on Selenium
!