Java / Selenium - Save text in variable [closed]

0

People, all right?

I have the following problem:

I need to generate a fake cpf, copy the generated cpf, and store it in a variable. But I can not extract the generated cpf from the sites I found. Both gettext () and getattribute () could not find it. Can anyone help me?

link

    
asked by anonymous 15.10.2015 / 21:18

1 answer

2

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,ifyouwantaCPFrandom,you'llhavetomakesomechanges.Importtheseclassesatthebeginning:

importjava.util.concurrent.ThreadLocalRandom;importjava.text.DecimalFormat;

AndchangeCPFStringto:

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 !

    
22.10.2015 / 02:40