maxiwell / ofx-bot

Bank reconciliation using OFX files
70 stars 19 forks source link

ofx-itau: xdg-user-dir: readCreateProcess: runInteractiveProcess: exec: does not exist (No such file or directory) #25

Open tuler opened 7 years ago

tuler commented 7 years ago

Estou tentando rodar o ofx-itau no OSX. Compilou tudo corretamente, mas está dando esse erro do título depois que eu inputo os dados de login. O que pode ser?

maxiwell commented 7 years ago

O 'ghc' está instalado e vc consegue chamar ele via linha de comando?

tuler commented 7 years ago

Sim, o ghc está ok. Compilou tudo ok.

maxiwell commented 7 years ago

Encontrei alguns projetos que apresentaram o mesmo erro. Todos que vi era problema na configuração do 'stack' porém não tenho nenhum OSX para reproduzir seu problema.

francesquini commented 7 years ago

Isto na verdade é uma limitação (artificial) do código. O Chrome (na época) não respeitava as configurações do diretório de download (talvez já tenha sido corrigido). Assim, como workaround deixávamos ele fazer o download no diretório padrão e depois copiávamos o arquivo para o diretório onde o script estava rodando. Como quase todas as soluções paliativas essa solução foi esquecida e ficou lá no código até hoje:

https://github.com/francesquini/itau-lib/blob/master/src/Itau.hs#L104

Tem duas possibilidades de solução imediata. Escolher o driver para o Firefox via linha de comando (que faz muito tempo que não rodo, mas acredito que ainda funcione), altere essas linhas do código para que ele não use o xdg (olhando alguma variável de ambiente ou colocando um caminho hardcoded).

Já alterei esta issue para um bug, assim corrigiremos ele o mais breve possível.

tuler commented 7 years ago

Com firefox não rodou. Deu erro na hora de inicializar o Selenium Server.

The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/jgraham/wires. The latest version can be downloaded from https://github.com/jgraham/wires

francesquini commented 7 years ago

Você baixou o GeckoDriver conforme explicado aqui? https://github.com/maxiwell/ofx-bot/blob/master/README-ptbr.md#requisitos

tuler commented 7 years ago

@francesquini tinha faltado renomear pra wires. Agora deu outro erro. O firefox até dispara, mas nem começa a navegar pelo site do Itaú. Meu firefox está atualizado, versão 53.0.

Iniciando Selenium Server
Efetuando login
Erro durante a execuçãoFailedCommand UnknownError 
Session: SessionId "0977b53f-e2a7-4334-8e31-b8011718e549" at "127.0.0.1":4444
java.lang.ClassCastException: com.google.common.collect.Maps$TransformedEntriesMap cannot be cast to org.openqa.selenium.WebElement
  org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:368)
  org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector (RemoteWebDriver.java:492)
  org.openqa.selenium.remote.RemoteWebDriver.findElementById (RemoteWebDriver.java:415)
  org.openqa.selenium.By$ById.findElement (By.java:218)
  org.openqa.selenium.remote.RemoteWebDriver.findElement (RemoteWebDriver.java:355)
  sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:18446744073709551614)
  sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
  sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
  java.lang.reflect.Method.invoke (Method.java:483)
  org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke (EventFiringWebDriver.java:103)
  com.sun.proxy.$Proxy1.findElement (:18446744073709551615)
  org.openqa.selenium.support.events.EventFiringWebDriver.findElement (EventFiringWebDriver.java:188)
  org.openqa.selenium.remote.server.handler.FindElement.call (FindElement.java:48)
  org.openqa.selenium.remote.server.handler.FindElement.call (FindElement.java:1)
  java.util.concurrent.FutureTask.run (FutureTask.java:266)
  org.openqa.selenium.remote.server.DefaultSession$1.run (DefaultSession.java:176)
  java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
  java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:617)
  java.lang.Thread.run (Thread.java:745)

Desligando Selenium Server