Solucionado (ver solução)
Solucionado
(ver solução)
11
respostas

Gerar um Jar utilizando Selenium

Boa tarde Pessoal, Estou tentando gerar um executável do meu Script em java, esse sistema utiliza o Selenium para realizar um procedimento automático, mas quando eu gero esse .jar e executo ele, nada acontece. Só aparece a janela que eu criei com JOptionPane e mais nada acontece, o que seria esse problema?

11 respostas

Oi Luiz,

Precisamos ver sua classe principal(classe com método main) desse projeto para entender como foi feito. Pode postar aqui o código dela?

Olá Rodrigo, vou postar aqui, mas não usei nada de Junit, apenas a biblioteca Selenium.

package metalumens;

import java.io.IOException;
import javax.swing.JOptionPane;

public class PrincipalMeta {

    public static void main(String[] args) {

        int opcao = 0;
        boolean erro = false;

        do {
            try {
                opcao = Integer.parseInt(JOptionPane.showInputDialog("1 - Atualizar Frete Leroy Merlin\n"
                        + "2 - Criar Planilha de Frete + Comissão da B2W"));
                if(opcao == 1 || opcao == 2) {
                    erro = false;
                    break;
                }
            } catch (Exception e) {
                System.out.println("Digite o Valor Correto:");
                erro = true;
            }
        }while(erro);



        switch(opcao) {

        case 1:
            RoboCorreios correios = new RoboCorreios();
            correios.loginLeroy();
            correios.loginBling();
            correios.paginaPedidosLeroy();        
            break;
        case 2:
            RoboB2W robo = new RoboB2W();
            robo.loginB2W();    
            robo.paginaCustoFrete();
            break;
        case 3:
            Planilha planilha = new Planilha();
            try {
                planilha.plan();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }                
    }

}

Quando eu crio um executavel(jar), ele chega a aparecer o JOptionPane, mas quando digito algo, nada acontece.

Olá Rodrigo, Conseguiu alguma resposta, por favor

Oi Luiz,

Pois é, não vi nenhuma problema a princípio.

Como sugestão você pode colocar também um JOptionPane dentro dos blocos catch para verificar se está acontecendo algum problema.

Algo como:

} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e.getMessage());
}

Olá Rodrigo, tudo bem? Valeu pela dica, mas ainda não deu certo..hehe...Continuo quebrando a cabeça para tentar resolver isso....

Rodrigo tudo bem?

Eu executei esse .jar pelo cmd e o seguinte erro esta aparecendo: Engraçado é que no eclipse roda perfeitamente.

C:\Users\Luiz Henrique\OneDrive\Área de Trabalho\Robozinho>java -jar Funciona.jar Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61) Caused by: java.lang.IllegalStateException: The driver executable must exist: C:\Users\Luiz Henrique\OneDrive\Área de Trabalho\Robozinho\drivers\chromedriver.exe at org.openqa.selenium.internal.Require$FileStateChecker.isFile(Require.java:315) at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:144) at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:139) at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:38) at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:231) at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:434) at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:127) at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:46) at metalumens.Rastreamento.(Rastreamento.java:20) at metalumens.PrincipalMeta.main(PrincipalMeta.java:40) ... 5 more

solução!

Oi Luiz,

Copia o arquivo chromedriver.exe para dentro do projeto, pode ser na pasta src/main/resources, e na sua classe que chama o selenium atualize o caminho do arquivo:

System.setProperty("webdriver.chrome.driver", "webdriver.exe");
WebDriver driver = new ChromeDriver();
...

Coloquei,

Agora esta aparecendo outro erro menor:

Exception in thread "main" java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver at metalumens.PrincipalMeta.main(PrincipalMeta.java:40) Caused by: java.lang.ClassNotFoundException: org.openqa.selenium.WebDriver at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more

Nossa professor, consegui resolver..kkkkkk Estava dando esse erro aqui:

Exception in thread "main" java.lang.IllegalStateException: The driver executable must exist: C:\Users\Luiz Henrique\OneDrive\Área de Trabalho\Robozinho\src\main\resources\chromedriver.exe

Acredita que quando gerava o .jar na pasta Robozinho eu tive que criar outra pasta src\main\resources e colocar o chromedriver.exe, mas criei essa pasta fora do eclipse mesmo.

Só não entendi o porque disso, já que no meu projeto tem essa pasta criada e o chromedriver.exe nela.

Muito obrigado Professor, me ajudou muito de verdade...Vou dormir até feliz...kkkkk